我已经设置了一个基本的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/