[英]invalidateQueries stops working if I navigate between Next.js routes
我们使用queryClient.invalidateQueries(someQueryKey)
来重新获取查询中的数据,并且效果很好。 项目迁移到Next.js
和路由器从react-router
更改为next-router
代码库保持最大相同,除了路由器更改。
现在,如果我从一条路线导航到另一条路线,然后返回 go, queryClient.invalidateQueries(someQueryKey)
停止工作,所有其他查询调用都可以正常工作,因为它应该使用 Queris 和 useMutations。
奇怪的是,当我在页面之间导航时,查询从Query Dev Tools
中消失但继续工作,除了queryClient.invalidateQueries()
。 如果我刷新页面Query Dev Tools
开始向我显示正确的查询,并且它开始正常工作,直到我导航到另一条路线并返回。
如果有人可以帮助我解决这个问题,我将不胜感激。 让我知道是否需要任何其他信息。
讨论移至: https://github.com/tannerlinsley/react-query/discussions/3037
答案:以下似乎解决了这个问题,确实,前一个每次都创建一个新客户端,所以我认为这就是查询失效无法正常工作的原因:
export function useReactQueryClient() {
const [queryClient] = React.useState(function () {
return new QueryClient({
defaultOptions: {
queries: {
onError(err) {
// ....
},
},
},
});
});
return queryClient;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.