4 回答
TA贡献1794条经验 获得超8个赞
1、先说redux的作用
代理top-level single data flow,从最外层的container下发数据流触发dumb components的更新。
2、题主的业务场景是否可以由redux解决
答案肯定是可以的,但不一定合理。
下发props告知组件B执行更新,用过react的同学都很熟悉这一套,这边不赘述。
3、业务场景的特殊性
组件交互存在两种情形,一种是纯数据模型层面的组件映射关系,完全可以由redux处理;另一种是eventEmitter层面的交互,比如使用ng2的eventEmitter或者vue的$dispatch场景。
对于后者redux其实是提供解决方案的,一种是写个小型中间件,专门用于处理pub/sub,另一种是利用redux的subscribe接口添加观察者函数来触发pub/sub。
4、是否真的需要eventEmitter
不需要。
既然你用的是react + redux,就应该遵循它的设计原则,对组件划分的时候,建立足够好的view model一一映射关系。没有什么是redux解决不了的,如果有,那就重新思考下组件设计是否合理,如果还不行,那就考虑写个中间件。
TA贡献1836条经验 获得超5个赞
可能是你的action没有connect到组件上,没有把这个方法传过来。 1.参考我写的一个方案
1 2 3 4 | @connect( state => state, dispatch => bindActionCreators(action, dispatch) ) |
2.根据redux文档的方案
1 2 3 4 5 6 7 8 9 10 | // 哪些 action 创建函数是我们想要通过 props 获取的看 function mapDispatchToProps(dispatch) { return { onIncrement: () => dispatch(increment()) }; }
export default connect( mapDispatchToProps )(Counter); |
添加回答
举报