4 回答

TA貢獻1853條經驗 獲得超6個贊
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貢獻1827條經驗 獲得超9個贊
可能是你的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); |
添加回答
舉報