У меня есть вопрос. < /p>
Я использую rtk Query для проверки аутентификации. Когда я вхожу в систему, это не перемещается со мной на домашнюю страницу. Если я временно удаляю условие IF, которое проверяет для аутентификации, оно идет на домашнюю страницу, но CheckAuth не работает. < /P>
Однако, если я обновлю страницу, CheckAuth работает. это? »< /p>
import toast from "react-hot-toast";
import { useEffect } from "react";
import { Navigate, useNavigate } from "react-router-dom";
import { useSelector, useDispatch } from "react-redux";
import { skipToken } from "@reduxjs/toolkit/query";
import { useCheckAuthQuery, useLogoutMutation } from "../services/auth.js";
import { logout, updateUser } from "../app/features/auth.js";
const AuthProvider = ({ children }) => {
const dispatch = useDispatch();
const navigate = useNavigate();
const token = useSelector(
(state) => state.auth.token || localStorage.getItem("token"),
);
const { data, isSuccess, isLoading, error, isError } = useCheckAuthQuery(
token ? undefined : skipToken,
);
const [logoutMutation] = useLogoutMutation();
useEffect(() => {
if (isSuccess && data) {
dispatch(updateUser(data));
toast.success(data?.message);
navigate("/");
}
if (data?.user.isVerified === false) {
navigate("/verifyEmail");
}
}, [isSuccess, data, dispatch]);
useEffect(() => {
if (isError && error) {
toast.error(error?.data?.message || "Failure");
dispatch(logout());
logoutMutation();
navigate("/login");
}
}, [error, isError, dispatch]);
if (isLoading) {
return (
Checking authentication ...
);
}
if (!token) {
return ;
}
return children;
};
export default AuthProvider;
Подробнее здесь: https://stackoverflow.com/questions/796 ... fter-login
Rtk Query checkauth не работает сразу после входа в систему ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Состояние «isLoading» RTK-запроса становится «ложным» перед получением данных.
Anonymous » » в форуме Javascript - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-