Maison > interface Web > js tutoriel > Comment accéder à l'état Redux dans les créateurs d'action ?

Comment accéder à l'état Redux dans les créateurs d'action ?

Barbara Streisand
Libérer: 2024-10-21 18:47:02
original
824 Les gens l'ont consulté

How to Access Redux State within Action Creators?

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,
  }
}
Copier après la connexion

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));
  }
}
Copier après la connexion

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal