繁体   English   中英

在未定义的情况下对redux路由器做出反应

[英]react redux router in not defined in action

我的反应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没有定义?

这是怎么了 为什么会出现此错误? 我已经在Provider提供了this.props

任何人都可以引导我完成此任务……

您试图在loginSuccess函数中访问一个名为router的对象,该对象除非是全局变量,否则将引发TypeError。

您需要将其传递给您的loginSuccess函数以使其起作用。

function loginSuccess(response, router) {
    router.transitionTo('/');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM