【发布时间】:2016-02-08 02:43:18
【问题描述】:
我是 React 新手,希望有人能解释为什么会发生这种情况以及如何调试它。
我定义了以下路线:
export default (withHistory, onUpdate) => {
const history = withHistory?
(Modernizr.history ?
new BrowserHistory
: new HashHistory)
: null;
return (
<Router history={history}>
<Route path='/login' component={Login} />
<Route path='/' component={Home} onEnter={requireAuth} />
</Router>
);
};
requireAuth 应该检查用户是否已登录,如果没有,则将其重定向到登录页面:
function requireAuth(nextState, transition) {
transition.to("/login");
}
如果我留下 transtion.to 调用并浏览到根 URL,我只会看到一条消息“无法获取 /”,而调试器中没有错误消息。在该行上放一个断点似乎没有任何作用。
特别奇怪的是,如果我将 transition.to(...) 替换为 debugger; 语句,则调用该方法并且路由工作正常。
我一定对某事有误解,有什么想法吗?
编辑:我应该补充一点,导航到 host:port/login 工作正常,所以我知道 login 路由工作正常。
【问题讨论】:
-
什么版本的 react-router? 1.x?
-
我使用的是 react-router 的 1.0.0-beta3 版本。我确实尝试升级我正在使用的版本,但我最终以更简单的方式解决了它。
标签: javascript reactjs url-routing