在我对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",