reactjs 为什么在三个无效查询中,两个有效,一个无效?

z9ju0rcb  于 2023-02-18  发布在  React
关注(0)|答案(1)|浏览(105)

我正在学习在我的项目中使用react-query。我正在使用相同的逻辑在多个变异函数中使"bookmark"查询无效。它在那里工作,但在我的handleLogin函数中它不重取数据。另一方面,其他两个无效查询工作正常。
下面是我的代码:

const queryClient = useQueryClient();
    const navigate = useNavigate();
    const toast = useToast();

    const { mutate: handleLogin } = useMutation(({ emailId, password }: loginUserParams) => loginUser({ emailId, password }), {
        onSuccess: (data) => {
            queryClient.invalidateQueries(["categoryList"]);
            queryClient.invalidateQueries(["subsStatus"]);
            queryClient.invalidateQueries("bookmark");
            toast({ title: "User logged", status: "success", duration: 3000, isClosable: true });
            navigate("/");
        },
        onError: (error) => {
            console.log(error);
        },
    });

我将queryClient.invalidateQueries("bookmark");更改为queryClient.refetchQueries("bookmark");,现在它可以工作,但不知道为什么它不能用于invalidateQueries
如果我遗漏了什么,请给我指点。

jvidinwx

jvidinwx1#

我假设书签查询不是实时的。请用查询监视器检查一次,检查它是否是实时的。只有当查询是实时的时,React-query才会触发对无效查询的重取。
您可以通过在queryClient提供程序中添加来检查queryMonitor。
喜欢

<QueryClientProvider client = {appQueryClient}>
  <LoadAppHere />
  <ReactQueryDevtools />
</QueryClientProvider>

相关问题