反应 Redux 路由器 在 未定义 在操作中

react redux router in not defined in action

本文关键字:操作 未定义 反应 路由器 Redux      更新时间:2023-09-26

我的反应冗余工作流程如下:

我的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('/');
}