【问题标题】:relay cache invalidation using pattern queries使用模式查询中继缓存失效
【发布时间】:2016-09-06 03:26:06
【问题描述】:

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

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

   }

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

这里有什么想法吗?

【问题讨论】:

    标签: graphql relayjs


    【解决方案1】:

    不幸的是,你没有简单的方法来做那个交叉点,至少不只是使用forceFetch。突变 API 不仅仅是尝试获取模式查询 - 它执行与本地图的交集以计算发送的实际突变查询。

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

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 2010-09-14
      • 2013-10-03
      • 2011-05-07
      • 2016-09-09
      • 2016-09-21
      • 2015-05-20
      • 2011-12-30
      • 1970-01-01
      相关资源
      最近更新 更多