应该每个组件都有自己的mapDispatchToProps吗?

问题描述:

如果许多组件共享相同的动作,创建一个mapDispatchToProps函数可以传递给每个组件的connect()还是为每个组件定义一个单独的函数更好?应该每个组件都有自己的mapDispatchToProps吗?

我有两个组件共享10个动作,但其中一个需要额外的动作,而与另一个动作无关。似乎矫枉过正重新定义了整个mapDispatchToProps为了一个单一的行动,但它并没有紧密联系在一起。

创建另一个组件,其中包含所有共享动作,并将地图分派给道具,然后从此基础组件创建另一个组件。之后您可以添加/修改基本组件操作和功能。例如:

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

只是把你:

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

将地图调度分配给第一个组件中的道具,第二个将继承它,或者对于新功能和行动,您可能需要再添加一个mapDispatchToProps