应该每个组件都有自己的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
。