Rtk Query checkauth не работает сразу после входа в системуJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Rtk Query checkauth не работает сразу после входа в систему

Сообщение Anonymous »

У меня есть вопрос. < /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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»