Apollo GraphQl起反应.如何清除所有变量组合的查询缓存?

And*_*sen 21 caching react-apollo

我在我的反应应用程序中使用apollo graphql.说我有以下查询:

query ListQuery($filter: String!) {
   items(filter: $filter) {
     id
     name
   }
}
Run Code Online (Sandbox Code Playgroud)

此查询允许我使用过滤器查询项目列表.假设我使用过滤字符串A,然后使用过滤字符串B.缓存现在包含两个条目:ListQuery(A)和ListQuery(B).

现在让我们说我使用一个变异来添加一个新项目.如何从缓存中删除所有缓存的查询?所以在这种情况下,我想从缓存中删除ListQuery(A)和ListQuery(B).

我怎么能做到这一点?

小智 5

在您的情况下,您可以使用apollo的方法client.resetStore();

它将清除先前的缓存,然后加载活动查询.


bas*_*sil -5

了解获取策略 options.fetchPolicy

- 编辑: -

但如果您只想重置一个查询,这只是一种技巧。要重置所有商店,请参阅 @Nitin 的回答:将fetchPolicy设置为network-only。刷新查询。将其返回到您选择的选项。