动作redux后反应路由器重定向

新手上路,请多包涵

我正在使用 react-reduxreact-router 。我需要在发送操作后重定向。

例如:我已经注册了几步。行动后:

 function registerStep1Success(object) {
    return {
        type: REGISTER_STEP1_SUCCESS,
        status: object.status
   };
}

我想使用registrationStep2重定向到页面。我怎样才能做到这一点?

ps 在历史浏览器中’/registrationStep2’ 没有被访问过。该页面只有在结果注册成功后才会出现Step1页面。

原文由 ximet 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 571
2 个回答

使用 React Router 2+,无论您在哪里调度操作,都可以调用 browserHistory.push() (或 hashHistory.push() 如果您使用的是):

 import { browserHistory } from 'react-router'

// ...
this.props.dispatch(registerStep1Success())
browserHistory.push('/registrationStep2')

如果您使用的是异步操作创建者,您也可以这样做。

原文由 Dan Abramov 发布,翻译遵循 CC BY-SA 3.0 许可协议

你检查过 react-router-redux 了吗?这个库使得将 react-router 与 redux 同步成为可能。

这是文档中的一个示例,说明如何使用 react-router-redux 的推送操作实现重定向。

 import { routerMiddleware, push } from 'react-router-redux'

// Apply the middleware to the store
const middleware = routerMiddleware(browserHistory)
const store = createStore(
  reducers,
  applyMiddleware(middleware)
)

// Dispatch from anywhere like normal.
store.dispatch(push('/foo'))

原文由 Eni Arinde 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进