2016-06-14 62 views
0

我想在rea-router路由中使用redux操作作为对onChange事件的回调。我也在使用react-router-redux。作为回应路由器路由组件中的回调操作

喜欢的东西

<Route path="profile/search" component={ProfileSearch} onChange={store.dispatch(fetchCompanies())} /> 

其中fetchCompanies是行动。

更一般地说,我希望听到路由变化并最终与状态交互,这就是为什么使用动作对我来说似乎是最直接的选择。然而,我得到这个错误:

Uncaught TypeError: hook.apply is not a function TransitionUtils.js?f913:22 

是否有另一种方法来实现这一目标?是否试图将一个行动作为回调传递给路由改变固有的不好?如果不是,我该如何让它工作?

+0

为什么你想在路由器级别上做到这一点? – Hareesh

+0

只需使用'Route'组件和'onChange'来触发api请求作为回调(每当特定路由发生变化时,就是这样)。 api请求将返回一些我必须保存在全局状态中的数据。 – feychou

+0

你也可以在组件中做到这一点。例如:在反应组件的componentDidMount()生命周期中分派动作。 – Hareesh

回答

0

调用store.dispatch会抛出错误,但将调度的操作封装在函数中。

const onChangeProfileSearch =() => store.dispatch(fetchCompanies()); 
<Route path="profile/search" component={ProfileSearch} onChange={onChangeProfileSearch} /> 

但是,对此可能有更好的方法。