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

标签 reactjs react-native graphql apollo react-apollo

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

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

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

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

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

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

最佳答案

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

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

关于reactjs - Apollo Client React 容器将创建的元素添加到分页元素列表中而无需重新获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44348225/

相关文章:

javascript - 在react条件返回中使用API​​ JSON数据

html - 响应式网站在移动设备上工作但不在构建中

javascript - 使用 fetch 方法读取 RapidAPI JSON 响应

javascript - D3 + React Native - X 位置更改时数据点值不更新

graphql - 如何在graphql中为输入参数添加默认值

javascript - 如何导航到新页面React Router v4

javascript - 如何使用包装器控制按钮的切换

reactjs - 使用 React Native CLI 时应用程序构建失败

asp.net-core - 没有可用的架构 graphql asp net core

laravel - 如何在 Javascript 中将对象数组转换为 GraphQL 格式?