我有以下路线和requireAuth实现。我有两个问题。
1.)我没有登录时,没有从/重定向到/ login。
2.)当我尝试访问/并且登录时,Home组件未呈现。
在任何用例中都不会出现控制台错误。我已经确认IsLoggedIn()在预期的时间返回了预期的值。因此,我的requireAuth实现很可能归咎于此。我做错什么了?
index.js
import { isLoggedIn } from './auth';
function requireAuth(nextState, replace, callback) {
if (!isLoggedIn()) {
replace('/login');
}
}
render(
<Provider store={store}>
<Router history={hashHistory}>
<Route path="/" component={Home} onEnter={requireAuth} />
<Route path="/login" component={Login} />
</Router>
</Provider>, document.getElementById('root')
);
验证码
module.exports = {
isLoggedIn() {
return localStorage.token != undefined;
}
};
最佳答案
If callback is listed as a 3th argument, this hook will run asynchronously, and the transition will block until callback is called.在您的情况下,不需要回调,因此您可以安全地省略它(因为isLoggedIn
是同步的)
关于javascript - react 路由器requireAuth不重定向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39336883/