reactjs 在react-query中使用React state作为查询键时,即使cacheTime仍然会获取数据,原因是什么?

4zcjmb1e  于 2023-04-05  发布在  React
关注(0)|答案(1)|浏览(94)

在react-query中使用React state作为查询键时,即使cacheTime仍然会获取数据,原因是什么?

const [value, setValue] = useState(3336);
  const { isLoading: postLoading, data: postData, refetch } = useQuery(
    ["post", "post", { value }],
    () => getPost(value + ""),
    {
      refetchOnWindowFocus: false,
      refetchOnMount: false,
      retry: 0,
    }
  );

值:3336 -〉4444 -〉3336
我有一个关于value: 3336的缓存。也cacheTime仍然存在,但它正在重新获取数据...
什么是理性?

const { id } = useParams();

  const { isLoading: postLoading, data: postData } = useQuery(
    ["post", "post", { id }],
    () => getPost(id + ""),
    {
      refetchOnWindowFocus: false, // 포커스 toggle 시 refetch
      refetchOnMount: false, // 컴포넌트 리랜더링시 refetch
      retry: 0,
    }
  );

它工作得很好。我搞不懂....

ecfsfe2w

ecfsfe2w1#

当QueryKey改变时,react查询将观察到一个新的缓存条目,该条目最初可能是空的。因此,它必须为该键获取数据。这是预期的,也是一件好事。
如果你想避免加载状态,并保持屏幕上的数据来自旧键,你可以将keepPreviousData: true传递给你的Query。

相关问题