【发布时间】:2020-01-06 22:00:54
【问题描述】:
我的 react/redux 应用程序出现问题。 我已经成功实现了登录功能——登录后重定向到主页。
我遇到的问题是,如果我转到 URL,然后输入 /login。登录屏幕显示一秒钟,然后重定向到主页。如何让它立即重定向?
注意:我能够使其工作的唯一方法不是检查状态 isAuthenticated,而是检查 localStorage 的令牌,然后重定向。
const App = () => {
useEffect(() => {
if (localStorage.token) {
store.dispatch(loadUser());
}
});
return (
<Provider store={store}>
<Router>
<div id='js-scroll'>
<Switch>
<Route exact path='/' component={Home} />
<Route exact path='/register' component={Register} />
<Route exact path='/login' component={Login} />
</Switch>
</div>
</Router>
</Provider>
);
};
const Login = ({ login, isAuthenticated }) => {
if (isAuthenticated) {
return <Redirect to='/' />;
}
return ( ... )
const mapStateToProps = state => ({
isAuthenticated: state.authReducer.isAuthenticated
});
export default connect(
mapStateToProps,
{ login }
)(Login);
【问题讨论】:
-
您是否检查了 isAuthenticated 的值以及它如何随时间变化。这似乎只是它最初的值为 false,然后启动了一些进程来授权和调度该值的更改。
-
@MonVillalon 是正确的。
标签: reactjs redux react-redux