Chaque attribut a-t-il besoin d'un réducteur ?
P粉124070451
P粉124070451 2023-08-17 14:47:45
0
1
472
<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粉124070451
P粉124070451

répondre à tous(1)
P粉404539732

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;
    },
  },
})

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal