我的反应redux工作流程如下:
我的action.js
export function loginSuccess(response){
return (dispatch, getState) => {
console.log(getState())
dispatch({ response, type: LOGIN })
console.log(getState())
router.transitionTo("/profile")
};
}
我有routes.js
const routes = (
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRoute component={Login} />
<Route name="profile" path="/profile" component={Profile} />
</Route>
</Router>
)
export default routes
和我的root.js
class Root extends Component {
render() {
const { store } = this.props
return (
<Provider store={store}>
<ReduxRouter />
</Provider>
)
}
}
Root.propTypes = {
store: PropTypes.object.isRequired
}
export default Root
执行此操作时,我发现错误router
未定义?
这里有什么不对?为什么我收到此错误?我在this.props
中提供了Provider
。
任何人都会引导我解决这个问题......在这个问题上我的头脑。
答案 0 :(得分:0)
您尝试访问router
函数中名为loginSuccess
的对象,除非它是全局变量,否则会引发TypeError。
您需要将其传递给loginSuccess
函数才能使其正常工作。
function loginSuccess(response, router) {
router.transitionTo('/');
}