Accès à l'état Redux dans les créateurs d'actions
Les actions Redux sont généralement conçues pour être « minces » et contiennent uniquement les informations nécessaires pour mettre à jour l'application. État. Cependant, dans certains scénarios, il peut être nécessaire d'accéder à l'état du magasin global au sein d'un créateur d'action. Cet article explore deux approches pour ce faire et fournit des conseils sur leur utilisation.
Utiliser un magasin Singleton
Une approche consiste à importer un magasin Singleton et à accéder directement à son état.
import store from '../store'; export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return { type: SOME_ACTION, items: store.getState().otherReducer.items, } }
Bien que cette approche soit simple à mettre en œuvre, elle repose fortement sur le fait que le magasin soit un singleton et exposé sous forme d'importation de module. Cette conception est déconseillée car elle entrave la mise en œuvre du rendu du serveur, où des instances de magasin distinctes sont généralement requises par requête.
Utilisation du middleware Redux Thunk
L'approche recommandée consiste à exploiter le middleware Redux Thunk. Le middleware Thunk permet de distribuer des fonctions asynchrones sous forme d'actions, donnant accès à la méthode getState().
export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return (dispatch, getState) => { const {items} = getState().otherReducer; dispatch(anotherAction(items)); } }
Cette approche nécessite l'utilisation de Redux Thunk, mais elle permet un accès flexible à l'état du magasin sur le client et environnements de serveur.
Considérations
L'utilisation de getState() dans les créateurs d'action a été débattue dans la communauté Redux. Alors que certains développeurs s'y opposent, d'autres estiment qu'elle est acceptable dans des scénarios spécifiques, tels que les envois conditionnels ou l'accès aux données mises en cache.
En fin de compte, la meilleure approche dépend des exigences spécifiques de l'application. Si l'accès à l'état du magasin est nécessaire au sein d'un créateur d'action, les options de magasin singleton ou de middleware Thunk peuvent être envisagées. Cependant, il est important de noter que les actions doivent généralement rester « fines » pour maintenir la clarté et la traçabilité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!