【问题标题】:How do I add a Root Node如何添加根节点
【发布时间】:2016-09-01 03:28:59
【问题描述】:

添加嵌套项很简单:配置只是一个RANGE_ADD

query {
  viewer {
    item {
      edges {
        node {
          subitem {
            edges {
              node {
                id,
                title
              }
            }
          }
        }
      }
    }
  }
}

添加subitem 只需要一个RANGE_ADD,其parentId 等于item 的id。

但是,如何添加没有父级的item?我尝试使用没有 parentId 的 RANGE_ADD 配置,但没有成功。

我觉得这是一件如此简单的事情,但我似乎无法在文档中找到它。

【问题讨论】:

    标签: graphql relayjs graphql-js


    【解决方案1】:

    item 确实有一个父级,即viewer。只是viewer 可以有一个item 而不是多个items,因为item 不是连接类型。因此,当您想添加另一个 item 时,您可以:

    1) 替换/更新现有的item。在这种情况下通常使用 FIELDS_CHANGE。

    2) 获取不需要放入客户端存储的item。在这种情况下,您可以使用REQUIRED_CHILDREN mutator 配置。在answer 中查看如何在另一个相关问题中使用它的一个很好的示例。

    【讨论】:

    • 第二个看起来和我需要的完全一样。我没有现有项目(创建一个新项目),所以我不能使用 FIELDS_CHANGE
    • 如果您在viewer 下没有现有的item,并且您的突变创建了item,您应该更新viewer 并使用FIELDS_CHANGE。第二个不适合您的用例,因为它不会使用新创建的item 更新客户端存储。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多