我有一个带有项目列表的react-redux应用程序。每个项目都有一个按钮来打开细节。
所以当点击细节时,我有类似的东西:
dispatch(push(`/items/$item_id`)
这已配置路线:
<Route path="/item/edit/:id" component={ItemEdit} />
我遗漏的是在新路线被击中时如何获取物品数据。我知道在componentWillMount或componentWillReceiveProps中是微不足道的,但它们是由redux.connect抽象的。
我需要在路径更改或即将更改此组件时触发操作。
我看到的唯一方法是使用:
BrowserHistory.listen(location => dispatch(routeLocationDidUpdate(location)));
但这看起来很难看,因为它分享了所有组件的行为。即,我需要一个像(
routeLocationUpdate(location) {
switch(location)
case path1: dispatch(load_item)
case path2: dispach(load_talks)
...
对不起,如果不够清楚。
感谢 费尔南多