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

时间:2016-05-10 23:31:05

标签: graphql relayjs

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

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

   }

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

这里有什么想法吗?

1 个答案:

答案 0 :(得分:2)

不幸的是,你做这个交集并不是一件轻而易举的事,至少不只是使用forceFetch。变异API不仅仅是尝试获取模式查询 - 它还会执行与局部图的交集来计算发送的实际变异查询。

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