我们使用queryClient.invalidateQueries(someQueryKey)来检索查询中的数据,并且它工作得很好。迁移到Next.js的项目和从react-router到next-router代码库的路由器更改除了路由器更改之外,最大限度地保持不变。
现在,如果我从一条路线导航到另一条路线,然后返回,queryClient.invalidateQueries(someQueryKey)停止工作,所有其他查询调用都像它应该执行的useQueris和useMutations一样工作。
奇怪的是,当我在页面之间导航时,除了queryClient.invalidateQueries()之外,查询从Query Dev Tools中消失了,但仍在继续工作。如果我刷新页面,Query Dev Tools将开始向我显示正确的查询,并开始正常工作,直到我导航到另一条路线并返回。
如果有人能帮我解决这个问题,我将不胜感激!如果需要任何其他信息,请让我知道。
发布于 2021-12-03 10:32:28
讨论转移到: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;
}https://stackoverflow.com/questions/70186229
复制相似问题