反应redux路由器未定义在行动中

时间:2016-01-29 07:19:24

标签: javascript reactjs react-router redux

我的反应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

任何人都会引导我解决这个问题......在这个问题上我的头脑。

1 个答案:

答案 0 :(得分:0)

您尝试访问router函数中名为loginSuccess的对象,除非它是全局变量,否则会引发TypeError。

您需要将其传递给loginSuccess函数才能使其正常工作。

function loginSuccess(response, router) {
    router.transitionTo('/');
}
相关问题