我已经设置了一个基本的Relay变种来添加用户,但是一旦执行它就会返回此错误/警告:
警告:writeRelayUpdatePayload():预期的响应有效负载 包括新创建的边'changedUserEdge'及其'node'字段。 您是否忘记更新'RANGE_ADD'变异配置?
我注意到Relay在突变有效负载上遗漏了changedUserEdge
节点,我不明白为什么。我查看了一些Relay示例,但突变的构造方式完全相同。
突变,我调用它的React组件,可以找到生成的查询in this gist。
我使用graffiti-mongoose生成了我的GraphQL架构。
答案 0 :(得分:0)
我不确定我是否能够提供帮助,你的要点对我来说似乎很好,所以我认为你的问题可能在服务器上。
文档没有明确说明,但是当执行"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,
});
就我个人而言,我发现这是最难实现的,但是一旦你得到它,它就非常简单。希望这可以帮助!