2016-08-15 76 views
0

如果許多組件共享相同的動作,創建一個mapDispatchToProps函數可以傳遞給每個組件的connect()還是爲每個組件定義一個單獨的函數更好?應該每個組件都有自己的mapDispatchToProps嗎?

我有兩個組件共享10個動作,但其中一個需要額外的動作,而與另一個動作無關。似乎矯枉過正重新定義了整個mapDispatchToProps爲了一個單一的行動,但它並沒有緊密聯繫在一起。

回答

0

創建另一個組件,其中包含所有共享動作,並將地圖分派給道具,然後從此基礎組件創建另一個組件。之後您可以添加/修改基本組件操作和功能。例如:

export class secondComp extends BaseComp { 
    action3(){ 
    //some action 
    } 
} 

只是把你:

export class BaseComp extends Component { 
    action1() { 
    //some action 
    } 
    action2() { 
    //some action 
    } 
} 
現在,如果你想ü可以全部由自己使用,但如果你想添加一些其他的功能,你可以做這樣的事情

將地圖調度分配給第一個組件中的道具,第二個將繼承它,或者對於新功能和行動,您可能需要再添加一個mapDispatchToProps

相關問題