【发布时间】:2021-06-30 05:37:22
【问题描述】:
我这样做是为了如果用户已经登录并且他试图进入登录页面,那么他会被重定向到主页。但是当注销时,重定向仅在页面刷新后发生(也登录时)。如何解决?
路线:
const isLoggedIn = localStorage.getItem("token");
return (
<BrowserRouter>
<Route path={'/'} component={Home} />
<Route path={'/sign-in'} exact render={() => (isLoggedIn ? (<Redirect to="/" />) : (<SignIn />))} />
</BrowserRouter>
);
退出:
const signOut = async () => {
localStorage.removeItem('token')
await axios.post('sign-out', {});
setRedirect(true);
}
if (redirect) {
return <Redirect to="/sign-in" />
}
【问题讨论】:
-
您可能希望将
isLoggedIn设置为某些组件状态的一部分,以便在用户注销并更新状态时触发重新渲染。
标签: reactjs