État d'accès à l'intérieur de mapDispatchToProps méthode
J'ai écrit un composant conteneur à l'aide de redux et ma mise en œuvre pour mapDispathToProps ressemble à ceci
const mapDispatchToProps = (dispatch, ownProps) => {
return {
onChange: (newValue) => {
dispatch(updateAttributeSelection('genre', newValue));
dispatch(getTableData(newValue, ownProps.currentYear));
}
}
}
Le problème est que, pour getTableData j'ai besoin de l'état de certains autres composants. Comment puis-je accéder à l'état d'objet dans cette méthode?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser redux-thunk pour créer une action distincte créateur de la fonction qui a accès à
getState
, plutôt que de définir la fonction à l'intérieur demapDispatchToProps
:Quelques différentes façons d'organiser ceux-ci, mais quelque chose comme ça devrait marcher.
Est Possible également d'utiliser
mergeProps
qui fusionnemapState
etmapDispatch
et permet d'utiliser les deux en même temps.La documentation officielle: réagir-redux#connect
Performances possibles de drawback sur les plus grandes applications: Un Débordement de pile - interprétations et Exécutions et les mergeProps dans Redux
onChange
àMyComponent
. Vous devez exclure cet accessoire dans le cas où vous ne voulez transmettreonChangeWithNeededValue
.Vous pouvez simplement utiliser redux-thunk pour obtenir de l'état.
Écrire une fonction d'aide comme ceci:
Vous pouvez l'utiliser dans une fonction async ou générateur de fonction:
Si vous avez utilisé Thunk Middleware, alors vous pouvez écrire fonction d'assistance dans votre
Action.Js
Si vous avez utilisé le conteneur de modèle de conception, votre propriété récipient doit être en dessous de
Container.js
Vous pouvez essayer d'utiliser:
redux-nommé-réducteurs
Qui vous permet d'obtenir l'état de n'importe où dans votre code comme suit:
De même dans mapDispatchToProps: