Root查询在Relay.js中创建和删除

时间:2015-10-26 20:18:30

标签: reactjs graphql relayjs

我试图弄清楚如何使用Relay创建和删除节点,而我没有父节点。似乎NODE_DELETE / RANGE_DELETERANGE_ADD都需要父节点。有没有办法在Relay.js中从根查询对象执行创建和删除突变?

注意: 我确实找到了可以使用FIELDS_CHANGE查询执行创建的示例,但它们缺少任何文档或原因。

2 个答案:

答案 0 :(得分:3)

您应该可以将REQUIRED_CHILDREN用于此目的。它目前没有详细记录(甚至记录在案),并且它有一个有点令人困惑的名称(因此,we have a task用于重命名和改进文档)。它将来可能会重命名为EXTRA_FRAGMENT

通常,当您发出突变时,我们会执行" fat查询" (所有可能因突变而变化的字段)和#34;跟踪的查询" (到目前为止,您的应用已为节点请求的所有字段,以及更改时应更新的字段),并将此查询发送到具有变异的服务器。

因此,对于创建没有父节点的全新节点的用例,您可以在id中指定REQUIRED_CHILDREN之类的标识字段,然后使用它来导航到显示新创建的对象的视图。 This answer有一个非常详细的例子说明你将如何做到这一点。

答案 1 :(得分:0)

您可以将client:root作为parentID传递。然后您的pathToConnection将是['client:root', 'someConnection']

(已通过Relay Modern进行了测试。不确定是否也适用于Relay Classic,但是无论如何现在都正式弃用了它。但这仍然是该问题在Google上的最高排名之一,因此请回答。)

(位于this GitHub issue中)