Maison  >  Questions et réponses  >  le corps du texte

Chaque attribut a-t-il besoin d'un réducteur ?

<p>Je suis ce tutoriel pour incrémenter un nombre. </p> <p>Cela fonctionne, mais maintenant je souhaite l'implémenter sur environ 100 valeurs de configuration. Dois-je copier counterSlice.js 100 fois ou dois-je remplacer le numéro par un objet avec 100 propriétés ? </p> <p>counterSlice.js</p> <pre class="brush:php;toolbar:false;">export const counterSlice = createSlice({ nom : 'compteur', Etat initial: { valeur : 0, }, réducteurs : { incrément : (état) => // Redux Toolkit nous permet d'écrire une logique de "modification" dans les réducteurs. Cela ne change pas réellement l'état car il utilise la bibliothèque Immer, // Il détecte les modifications apportées à « l'état brouillon » et génère un tout nouvel état immuable basé sur ces modifications. // De plus, ces fonctions ne nécessitent pas d'instruction return. état.valeur += 1 }, décrémenter : (état) => état.valeur -= 1 }, incrémentByAmount : (état, action) => état.value += action.payload }, }, }) // Générer des créateurs d'actions pour chaque fonction de réduction de cas export const {incrément, décrément, incrémentByAmount } = counterSlice.actions exporter counterSlice.reducer</pre> <p><br /></p>
P粉124070451P粉124070451401 Il y a quelques jours388

répondre à tous(1)je répondrai

  • P粉404539732

    P粉4045397322023-08-18 09:20:48

    Dans certains cas, il peut être judicieux de créer explicitement des fonctions pour chaque champ de statut. Mais si vous disposez d’une centaine de champs de statut, vous devez alors adopter une approche plus générale.

    Je recommande d'inclure un champ keyvalue dans la charge utile de la fonction de réduction.

    export const configSlice = createSlice({
      name: 'config',
      initialState: {},
      reducers: {
        setConfigValue: (state, action) => {
          const { key, value } = action.payload;
    
          state[key] = value;
        },
      },
    })

    répondre
    0
  • Annulerrépondre