【发布时间】:2016-01-16 06:05:15
【问题描述】:
我将 React 0.13.3 与 react-router 1.0.0-rc3 一起使用。
我试图在登录/注销时将用户转发到不同的页面,但总是收到错误“_servicesRouterContainer2.default.get(...).transitionTo is not a function”。
我的代码如下所示(不相关部分省略):
在 app.js 中我设置了路由:
import { Router, Route } from 'react-router';
import RouterContainer from './services/RouterContainer';
let routes = (
<Router>
<Route path="/" component={Master}>
<Route path="some-component" component={SomeComponent}/>
<Route path="login" component={LoggedOut}/>
<Route path="*" component={ErrorPage}/>
</Route>
</Router>
);
RouterContainer.set(routes);
React.render(RouterContainer.get(), document.body);
然后将路由存储在 RouterContainer 中:
var _router = null;
export default {
set: (router) => _router = router,
get: () => _router
};
现在我正在尝试在调用 LoginActions.loginUser / LoginActions.logoutUser 时将用户转换到不同的页面:
import RouterContainer from '../services/RouterContainer';
export default {
loginUser: (response) => {
...
let nextPath = RouterContainer.get().getCurrentQuery().nextPath || '/';
RouterContainer.get().transitionTo(nextPath);
},
logoutUser: () => {
...
RouterContainer.get().transitionTo('login');
}
};
转换不起作用,我的控制台显示错误“_servicesRouterContainer2.default.get(...).transitionTo 不是函数”。
我做错了什么?
【问题讨论】:
标签: reactjs react-router