graphql - 使用模式查询的中继缓存失效

标签 graphql relayjs

我正在将中继用于 react native 应用程序,并且需要在应用程序生命周期的某些点强制无效或强制获取查询。我注意到您可以使用 Relay 创建一个查询,然后强制获取它。这会更新缓存。理想情况下,我想做 Mutations API 中所做的事情。我想提供一个与现有数据相交的胖查询,并重新获取该交集。但我不知道该怎么做。如果我尝试这样做:

 var query = Relay.createQuery(
    Relay.QL`
      query Root {
        viewer {
          unreadNotificationCount,
          notifications
        }
      }
   `, {

   }

并应用environment.forceFetch({ query })我收到有关通知的验证错误,不包括firstlast 参数。但我不想包含第一个或最后一个参数,因为我不知道我的应用程序的其余部分已加载了多少通知。

这里有什么想法吗?

最佳答案

不幸的是,没有简单的方法可以让您实现该交叉,至少不能仅使用 forceFetch。突变 API 的作用不仅仅是尝试获取模式查询 - 它对本 map 执行交集以计算发送的实际突变查询。

您绝对可以使用 forceFetch 要求单个容器重新获取其日期。 , 尽管。因此,如果您有一个获取通知的容器(我怀疑您确实这样做),只需每 N 秒触发一次 forceFetch 即可。

关于graphql - 使用模式查询的中继缓存失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37150580/

相关文章:

javascript - 如何在 React Native 的 js 函数中使用 apollo graphql(react)?

ios - 嵌套查询 GraphQL : Syntax error - iOS

flutter - 如何从 GraphQL 生成 Dart - graphql 到 dart 生成器

javascript - 使用中继进行身份验证和访问控制

javascript - 使用中继js向前和向后分页

javascript - 继电器 : How to merge instead of override queries in nested routes?

parse-platform - 如何使用 GraphQL + parse.com 构建 Web 应用程序?

relayjs - 中继/graphql 查询中的 3 个点/句点/省略号是什么意思?

react-native - Apollo 客户端: mutate is not a function

file-upload - 如何在 Jest 中模拟文件上传或文件对象?