为什么返回相同的数据集时,我对WatchQuery的订阅不触发?

时间:2019-06-26 04:12:40

标签: reactjs graphql react-apollo apollo-client

在我对watchQuery执行refetch之后,我试图调用回调。

当返回的数据相同时我调用refetch时,我的订阅回调不会被触发,但是当数据不同时,这可以正常工作。

我的假设是它与缓存有关,但更改缓存策略无济于事。

即使数据保持不变,在重新提取后如何执行一些代码?

当前实现:我正在使用React Apollo客户端创建如下的WatchQuery:

apolloClient.watchQuery({ query, variables, errorPolicy: 'all' });

只要稍后返回的数据与当前结果不同,预订查询就可以正常工作,

query.subscribe(console.log);

// later I call refetch with new vars, a search term in this case

query.refetch(newVariables);

如果从查询返回的数据集是相同的(例如由于相同的搜索结果),则不会调用subscribe方法。

更改查询的fetchPolicy似乎没有任何积极影响。

接下来我应该尝试什么?即使返回的数据相同,如何在重新提取后调用某些内容?

软件包版本:

(我确实尝试过升级,希望可以修复错误,但没有影响)

"apollo-client": "^2.5.1",
"react-apollo": "^2.5.5",

0 个答案:

没有答案