在 react-router 路由组件中作为回调的操作

Actions as callbacks in react-router routes components

我想使用 redux 动作作为对 react-router 路由中 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

还有其他方法可以实现吗?试图将一个动作作为回调传递给路由更改本身是不好的吗?如果没有,我怎样才能让它发挥作用?

调用 store.dispatch 会抛出错误,但将分派的操作包装在一个函数中是可行的。

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

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