2017-08-10 8 views
0

Blick auf Beispiele, wie mapDispatchToProps die meisten Beispiele verwenden, um die folgenden Muster folgen, eine Funktion, die ein Objekt mit dispatch als Argument zurückgibt:Reagieren Redux Thunk mit mapDispatchToProps

const mapDispatchToProps = (dispatch) => { 
    return({ 
     someFunc: (arg) => {dispatch(someFunc(arg))} 
    }) 
} 

Meine Frage ist, wenn alle meine Handlungen verwenden thunk, was bedeutet, dass sie alle Zugriff auf dispatch sowieso haben, warum müsste ich das obige Beispiel für die Zuordnung von Funktionen zu Requisiten in meinem containers verwenden?

Nach dem Experimentieren habe ich einen anderen Weg gefunden, die jedoch zu funktionieren scheint, ich bin nicht sicher, ob dies am besten Praxis ist ...

Main.jsx

import * as mainActions from '../actions/mainActions' 
import * as menuActions from '../actions/menuActions' 

const actionsToMap = {...mainActions, ...menuActions} 
export default connect(mapStateToProps, actionsToMap)(Main) 

Gibt es etwas falsch mit diesem Ansatz?

+0

Ich denke, Sie Ihre Antwort von diesem erhalten wird https://stackoverflow.com/questions/41670146/why-is-there-no-need-for-a-mapdispatchtoprops-function-here/41671030#41671030 .Actually die Das zweite Argument für die Verbindung benötigt entweder eine Funktion oder ein Objekt –

Antwort

1

Beide Ansätze sind korrekt, und Sie können auch bindActionCreators verwenden, wenn Sie einige Ersteller von Aktionen an eine Komponente übergeben möchten, die Redux nicht kennt und Sie den Versand oder den Redux-Speicher nicht an ihn übergeben möchten. Technisch gesehen ist das der einzige Anwendungsfall dafür.

Ziehen aus der documentation, mapDispatchToProps kann eine Funktion oder ein Objekt sein.

Ich denke, Ihr erster Ansatz ist gut für die Dokumentation, da Sie die Signatur der Aktions-Ersteller, die Sie in Ihrer Komponente verwenden, leicht sehen können, ohne zur Aktionsersteller-Datei navigieren zu müssen. Ansonsten bin ich in den meisten Fällen in der Lage Objekte zu benutzen (deine zweite Methode).

Hoffe, das hilft!

Verwandte Themen