在 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} />
但是,可能有更好的方法。
我想使用 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} />
但是,可能有更好的方法。