小编Nev*_*ess的帖子

使用 React Context 中的 use Effect 检查本地存储中是否已有令牌的最佳方法

再会。这是检查 AuthContext 的本地存储中是否已有令牌的最佳方法吗?我使用 useEffect 挂钩来检查令牌是否已存在。我是否应该更改 isAuthenticated 的初始状态,因为它在渲染时始终为 false?我不知道。谢谢

import React, { useState, useContext, useEffect } from "react";

const AuthContext = React.createContext();

export function useAuth() {
    return useContext(AuthContext);
}

export const AuthProvider = ({ children }) => {
    const [isAuthenticated, setAuthenticated] = useState(false);

    const login = () => {
        setAuthenticated(true);
    };

    useEffect(() => {
        const token = localStorage.getItem("AuthToken");
        if (token) {
            setAuthenticated(true);
        } else if (token === null) {
            setAuthenticated(false);
        }

        return () => {};
    }, []);

    return <AuthContext.Provider value={{ isAuthenticated, …
Run Code Online (Sandbox Code Playgroud)

authentication local-storage reactjs react-context use-effect

3
推荐指数
1
解决办法
4678
查看次数