javascript - 中继生成的突变查询缺少某些字段

标签 javascript node.js reactjs relay

我已经设置了一个基本的Relay突变来添加用户,但是一旦执行,它就会返回此错误/警告:


  警告:writeRelayUpdatePayload():预期的响应有效负载
  包括新创建的边缘“ changedUserEdge”及其“节点”字段。
  您是否忘了更新“ RANGE_ADD”突变配置?


我注意到Relay在突变有效载荷上遗漏了changedUserEdge节点,我也不知道为什么。我看了几个中继示例,但是突变的构建方式完全相同。

可以找到in this gist突变,我从中调用它的React组件以及生成的查询。

我使用graffiti-mongoose生成了GraphQL模式。

最佳答案

我不确定是否能够提供帮助,您的想法对我来说似乎还不错,所以我认为您的问题可能在服务器上。

文档没有明确说明,但是在执行"RANGE_ADD"类型的突变时,Relay期望节点和游标的边缘。

游标是通过调用Relay的cursorForObjectInConnection(ArrayOfUsers, User)生成的,其中可以通过调用ArrayOfUsers.indexOf(User)在数组内找到User。

因此,在我们添加用户的情况下,我们调用API将其插入数据库,然后获取所有用户的列表,然后执行此操作以找到该功能的合适用户

// mutation > outputFields > changedUserEdge...

    let selectedUser = allUsers.find(u => u.uuid === newUser.uuid)[0];
    let cursor = cursorForObjectInConnection(allUsers, selectedUser);
    resolve({
        node: selectedUser,
        cursor,
    });


我个人认为这是最难实现的方法,但是一旦获得,它就非常简单。希望这可以帮助!

关于javascript - 中继生成的突变查询缺少某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36308901/

相关文章:

javascript - HTML5 Canvas 上的多个事件监听器

node.js - docker npm安装错误-Kurento应用

javascript - 错误 : Can't set headers after they are sent - Node. js

reactjs - 客户端可以修改React组件状态吗?

reactjs - Aux Component vs React Fragment 哪个更好?

javascript - React Native FlatList中scrollToIndex和手动滚动的区别

javascript - 由于文本框onblur事件中的警告框,按钮点击事件丢失

javascript - 如何附加数据以使用 jquery 形成集体选择 optgroup 标签

node.js - Socket.io 客户端未连接

javascript - 创建调用远程 REST API 并返回结果的 Node REST API