我有一组非常简单的react组件:
container
挂接到redux并处理操作,存储订阅等list
显示我的物品清单new
这是一种将新项目添加到列表的形式
我有一些反应路由器路由,如下所示:
<Route name='products' path='products' handler={ProductsContainer}>
<Route name='productNew' path='new' handler={ProductNew} />
<DefaultRoute handler={ProductsList} />
</Route>
以便显示list
或form
而不显示两者。
我想做的是,一旦成功添加了新项目,就让应用程序重新路由到列表中。
到目前为止,我的解决方案是.then()
在async之后设置a dispatch
:
dispatch(actions.addProduct(product)
.then(this.transitionTo('products'))
)
这是执行此操作的正确方法,还是应该以其他方式触发其他操作以触发路线更改?
我最终创建了一个超级简单的中间件,看起来像这样:
因此,从那里您只需要确保您的
successful
操作具有redirect
属性即可。另请注意,该中间件不会触发next()
。这是有意为之的,因为路径转换应该是操作链的末端。