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

时间:2017-06-03 20:20:53

标签: reactjs react-native graphql apollo react-apollo

这个标题很混乱,但我会尽力解释我能做到的最好。我有一种情况,我在React Native中收集并显示服务器中的数据元素列表。它使用一个查询将GraphQL参数发送到服务器,以限制对前15个元素的初始请求。

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

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

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

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

问题是:更新代理上的Apollo readQuery命令不会向我返回要更新的相应数据集,除非我知道使用初始查询发送的变量;这包括分页count变量。

2 个答案:

答案 0 :(得分:1)

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

 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
    }
  }
}

答案 1 :(得分:0)

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