我正在学习在我的项目中使用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
如果我遗漏了什么,请给我指点。
1条答案
按热度按时间jvidinwx1#
我假设书签查询不是实时的。请用查询监视器检查一次,检查它是否是实时的。只有当查询是实时的时,React-query才会触发对无效查询的重取。
您可以通过在queryClient提供程序中添加来检查queryMonitor。
喜欢