一种解决方法是在查询的选项对象中添加fetchPolicy
,将其设置为cache-and-network
。例如:
apollo.query({
query: MY_QUERY,
fetchPolicy: 'cache-and-network'
}).then(result => {
// 处理查询结果
});
这样,Apollo客户端会先从缓存中获取查询结果并立即返回,然后再从服务端获取最新的查询结果。这样可以确保查询结果始终是最新的。
另一种解决方法是使用watchQuery
替代query
方法。watchQuery
方法会在查询结果改变时自动重新查询,并且可以监听查询结果的变化。例如:
apollo.watchQuery({
query: MY_QUERY
}).subscribe({
next(result) {
// 处理查询结果
}
});
这样,每当查询结果发生变化时,next
回调函数就会被调用,并传入最新的查询结果。