Apollo Client React 容器将创建的元素添加到分页元素列表中而无需重新获取

Apollo Client React container add created element to paginated list of elements without refetching

这个标题很混乱,但我会尽力解释清楚。我有一种情况,我正在 React Native 中收集和显示来自服务器的数据元素列表。它使用向服务器发送 GraphQL 参数的查询将初始请求限制为前 15 个元素。

query GetElements ($count: Int) {
    elements (count: $count) {
            id
            name
            tye
    }
}

如前所述,这将查询初始计数为 15 个元素的主列表。

我有应用程序的另一个页面,用户可以使用不同的 GraphQL 查询在后端创建新元素。

我的问题是:有没有一种方法可以在不执行任何添加网络请求的情况下轻松更新元素的主列表以包含新创建的元素?换句话说,只要创建命令成功,我希望能够简单地将新元素添加到元素的主列表中。

问题是:Apollo 在更新代理上的 readQuery 命令不会 return 给我更新适当的数据集,除非我知道初始查询发送的变量;这包括分页 count 变量。

如果您只想接收添加的项目,您似乎需要订阅 :: http://dev.apollodata.com/react/subscriptions.html

您现在可以像这样定义查询缓存存储的键:

 query AllItems($cursor: String, $limit: Int, $query: String) {
  items(cursor: $cursor, limit: $limit, query: $query) @connection(key: "AllItemsQuery") {
    count
    cursor
    has_next
    has_prior
    data{
      ...CoreItem
    }
  }
}