【发布时间】:2015-12-13 06:22:20
【问题描述】:
我有一组非常简单的 react 组件:
-
container挂钩到 redux 并处理操作、商店订阅等 -
list显示我的项目列表 -
new是一种向列表中添加新项目的表单
我有一些react-router 路由如下:
<Route name='products' path='products' handler={ProductsContainer}>
<Route name='productNew' path='new' handler={ProductNew} />
<DefaultRoute handler={ProductsList} />
</Route>
这样list 或form 会显示,但不会同时显示。
我想做的是在成功添加新项目后让应用程序重新路由回列表。
到目前为止,我的解决方案是在异步 dispatch 之后添加一个 .then():
dispatch(actions.addProduct(product)
.then(this.transitionTo('products'))
)
这是执行此操作的正确方法还是我应该以某种方式触发另一个操作来触发路由更改?
【问题讨论】:
-
你看过github.com/acdlite/redux-react-router 吗?它将路由存储存储在 redux 中,因此您可以触发路由更改作为 redux 操作。
-
我已经查看了
redux-react-router,这需要大量重构,因此可能需要等待。如果我同时提出解决方案,我会发布答案 -
@Dmitry 那么问题是一旦更新了道具(例如 isAuthenticated 标志),您从哪里触发。 componentWillReceiveProps?
标签: javascript reactjs react-router redux