4 回答

TA貢獻1794條經(jīng)驗 獲得超8個贊
1、先說redux的作用
代理top-level single data flow,從最外層的container下發(fā)數(shù)據(jù)流觸發(fā)dumb components的更新。
2、題主的業(yè)務(wù)場景是否可以由redux解決
答案肯定是可以的,但不一定合理。
下發(fā)props告知組件B執(zhí)行更新,用過react的同學(xué)都很熟悉這一套,這邊不贅述。
3、業(yè)務(wù)場景的特殊性
組件交互存在兩種情形,一種是純數(shù)據(jù)模型層面的組件映射關(guān)系,完全可以由redux處理;另一種是eventEmitter層面的交互,比如使用ng2的eventEmitter或者vue的$dispatch場景。
對于后者redux其實是提供解決方案的,一種是寫個小型中間件,專門用于處理pub/sub,另一種是利用redux的subscribe接口添加觀察者函數(shù)來觸發(fā)pub/sub。
4、是否真的需要eventEmitter
不需要。
既然你用的是react + redux,就應(yīng)該遵循它的設(shè)計原則,對組件劃分的時候,建立足夠好的view model一一映射關(guān)系。沒有什么是redux解決不了的,如果有,那就重新思考下組件設(shè)計是否合理,如果還不行,那就考慮寫個中間件。

TA貢獻1836條經(jīng)驗 獲得超5個贊
可能是你的action沒有connect到組件上,沒有把這個方法傳過來。 1.參考我寫的一個方案
1 2 3 4 | @connect( state => state, dispatch => bindActionCreators(action, dispatch) ) |
2.根據(jù)redux文檔的方案
1 2 3 4 5 6 7 8 9 10 | // 哪些 action 創(chuàng)建函數(shù)是我們想要通過 props 獲取的看 function mapDispatchToProps(dispatch) { return { onIncrement: () => dispatch(increment()) }; }
export default connect( mapDispatchToProps )(Counter); |
添加回答
舉報