使用NODE_DELETE而不重新获取数据

时间:2016-05-14 14:36:47

标签: graphql relayjs relay graphql-js

使用NODE_DELETE需要父级,并实际返回连接的父级:

Relay Error when deleting: RelayMutationQuery: Invalid field name on fat query

不幸的是,使用此功能会重新获取 ALL 我的嵌套项目,这对我的用例来说是不可接受的。

  fragment on deleteItemNested @relay(pattern: true) {
    id
    ok
    item {
      nested {
        edges {
          node { id }
        }
      }
    }
    clientMutationId
  }

有没有办法从连接/列表中删除项目而不重新获取所有数据?尝试不在嵌套结果中获取边缘,嵌套只是一个空对象。

1 个答案:

答案 0 :(得分:1)

由于在查询中使用了@relay(pattern: true),因此会重新获取所有嵌套项。这使查询与已跟踪的查询匹配,该查询已包含嵌套字段。请steveluscher查看问题Purpose of @relay(pattern:true)的优秀答案。

mutation documentationNODE_DELETE的代码示例值得一看。