【发布时间】:2015-12-24 14:09:40
【问题描述】:
我有登录组件,该组件应该可供未经身份验证的用户使用。并且在身份验证之后,该组件应该立即变得不可用。
var routes = (
<Route handler={App}>
<Route name="signIn" handler={signIn}/>
{/* redirect, if user is already authenticated */}
{ localStorage.userToken ? (
<Redirect from="signIn" to="/user"/>
) : null
}
</Route>
);
Router.run(routes, (Handler, state) => {
React.render(<Handler {...state}/>, document.getElementById('main'));
});
如果用户在身份验证后出于任何原因重新加载了 webapp,则此代码可以完美运行,但如果用户没有重新加载 webapp,则当然不会。
我尝试在 SignUp 组件中使用this.context.router.transitionTo,但效果很糟糕——组件被渲染,然后这个脚本被执行。
所以我想将重定向权添加到 routes 变量中,以使路由器重定向甚至不尝试渲染组件。
【问题讨论】:
标签: reactjs flux react-router