2016-08-15 3 views
0

Wenn viele Komponenten die gleichen Aktionen teilen, ist es besser, eine einzige mapDispatchToProps-Funktion zu erstellen, die für jede Komponente an connect() übergeben werden kann, oder um für jede Komponente eine eigene zu definieren?Sollte jede Komponente ihre eigenen mapDispatchToProps haben?

Ich habe zwei Komponenten, die 10 Aktionen teilen, aber eine davon benötigt eine zusätzliche Aktion, die für die andere nicht relevant ist. Es scheint Overkill, die gesamte mapDispatchToProps für eine einzige Aktion neu zu definieren, aber es ist nicht zusammenhängend, um es nur anzuheften.

Antwort

0

Erstellen Sie eine andere Komponente, die alle freigegebenen Aktionen enthält, mit einem Kartenversand an Requisiten, und erstellen Sie dann eine weitere Komponente aus dieser Basiskomponente. Sie können anschließend die Basiskomponenten Aktion und Funktionen hinzufügen/ändern. zum Beispiel:

export class BaseComp extends Component { 
    action1() { 
    //some action 
    } 
    action2() { 
    //some action 
    } 
} 

jetzt, wenn Sie wollen, u das alles von selbst verwenden kann, aber im Fall, dass Sie einige andere Funktionen hinzufügen, die Sie so etwas tun können:

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

nur Ihre setzen Kartenversand an Requisiten in der ersten Komponente und die zweite wird es erben oder für den Fall von neuen Funktionalitäten und Aktionen, die Sie möglicherweise nur eine weitere mapDispatchToProps hinzufügen müssen.

Verwandte Themen