我做了一个简单的前端,为了省力,把登录成功的token
保存到localStorage
里,我在一个受保护的页面被访问之前在useEffect
中判断是否存在token
,如果存在就可以渲染,否则用react-router-dom
的Redirect
进行重定向。但是似乎出了一点问题。
export default function Dashboard() {
let [isLogin, setIslogin] = React.useState(false);
React.useEffect(() => {
if (localStorage.getItem("token")) {
setIslogin(true);
console.log("ok");
}
console.log(isLogin);
return () => {}
}, [isLogin]);
if (!isLogin) {
return <Redirect
to={{
pathname: "/login",
}}
/>
} else {
return (
<h1>这是一个受保护的页面</h1>
);
}
}
控制台的打印是
ok
false
请问哪里出了问题,或者有没有更好地解决方案?
看上去应该是没问题,如果有token的话
应该是会打印
具体是出了什么问题 ?
另外这种情况完全没必要用
hook
吧直接
const isLogin = localStorge.getItem('token')
就行了