我在我的反应应用程序中使用apollo graphql . 说我有以下查询:
query ListQuery($filter: String!) {
items(filter: $filter) {
id
name
}
}
此查询允许我使用过滤器查询项目列表 . 假设我使用过滤字符串A,然后使用过滤字符串B.缓存现在包含两个条目:ListQuery(A)和ListQuery(B) .
现在让我们说我使用一个变异来添加一个新项目 . 如何从缓存中删除所有缓存的查询?所以在这种情况下,我想从缓存中删除ListQuery(A)和ListQuery(B) .
我怎么能做到这一点?
2 回答
在您的情况下,您可以使用apollo的方法client.resetStore();
它将清除先前的缓存,然后加载活动查询 .
阅读有关获取政策的信息options.fetchPolicy
但是,如果您只想重置一个查询,那么它只是一个技巧 . 要重置所有商店,请参阅@Nitin的答案:将fetchPolicy设置为 network-only . 刷新查询 . 将其返回到您选择的选项 .