5

我以这种方式在我的反应应用程序中使用反应查询

    const { data, status } = useQuery(key, queryFunc, { staleTime: 1 * 60 * 1000 });

我希望能够根据数据值使缓存中的某个键无效,基本上是当数据为空时,所以我添加了一个效果

useEffect(() => {
   if (data === null) {
     queryClient. invalidateQueries(key)
   }
}, [data])

这种方法将导致请求循环,其中无效的查询将重新获取,获取 null 作为响应,执行效果和无效等等......

我希望能够在不重新获取的情况下从缓存中删除密钥,所以我不会陷入这个无限请求循环,一直在研究反应查询文档但没有运气。无论如何,反应查询有类似的情况,需要从缓存中删除密钥而不重新获取?

4

1 回答 1

5

我想queryClient.removeQueries(key)会做你想做的事:https ://react-query.tanstack.com/reference/QueryClient#queryclientremovequeries

您能否详细说明一下您的用例?如果数据为空,为什么要从缓存中删除查询?

于 2021-01-04T16:44:07.290 回答