reactjs - 中继无法协调连接上的边缘

标签 reactjs graphql relay

我正在尝试在应用程序中使用中继来实现分页。在react-bootstrap表中显示数据并分页以导航页面。当我第一次点击页面时,它会加载第一页数据(执行根查询)。在分页(1、2、3 ..)的单击事件上,我向服务器请求下一页数据。正如预期的根查询执行并获取数据但是 UI 上的数据没有更新..并且在浏览器控制台中我可以看到以下错误

警告:中继无法协调连接上的边缘。这很可能发生在尝试处理包含缺少 id 字段的节点的连接边的服务器响应时。

分页单击后,我可以看到 url 中的更改以及所需参数,例如 pageNum=2,并且在页面刷新时它显示新数据..但数据应该在没有页面刷新的情况下出现。

最佳答案

在您定义 GraphQL 类型连接的服务器端 GraphQL 架构定义中,您是否定义了 field :id, !types.IDglobalIdField

例如(在 Javascript 中,但适用于其他语言)

var myObjectType = new GraphQLObjectType({
  name: 'MyObject',
  description: 'My Object',
  fields: () => ({
    id: globalIdField('MyObject'),
    ...
  })
})

var myObjectListType = new GraphQLObjectType({
  name: 'MyObjectList',
  description: 'List of My Objects',
  fields: () => ({
    id: globalIdField('MyObjectList'),
    denims: {
      type: myObjectConnection,
      ...
    }
  })
})

var {connectionType: myObjectConnection} =
  connectionDefinitions({name: 'MyObject', nodeType: myObjectType});

可能与:Nested fragment data always the same in Relay有关

关于reactjs - 中继无法协调连接上的边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36280693/

相关文章:

javascript - 无法将 fetch 调用中的数据推送到 mobx 可观察对象数组中

kotlin - GraphQL服务器端流式实现

reactjs - Gatsby (Gatsby)和斯特拉皮(Strapi)实现国际化的最佳途径

node.js - Sequelize 和响应请求 GraphQL

reactjs - 继电器现代: delete record in optimisticUpdater

node.js - 如何在 Graphql.js 中使用 GraphQL 的订阅

facebook - 在您的 graphql 模式中连接边和节点的原因是什么?

reactjs - 类型 'toBeInTheDocument' 上不存在属性 'Matchers<HTMLElement>'

javascript - onClick 改变子组件 ReactJS 的状态

javascript - 对象作为 React 子对象无效(找到 : object with keys)