Comprendere il Ruolo dei Reducer
Teoria
I reducer sono funzioni pure che specificano come lo stato deve cambiare in risposta alle azioni inviate. Prendendo lo stato attuale e un'azione come parametri, i reducer restituiscono il nuovo stato dell'applicazione.
Pratica
Nella cartella reducers del nostro progetto, abbiamo il file counterReducer.js dove definiamo il reducer per la funzionalità del contatore:
import { createReducer } from "@reduxjs/toolkit";
import { increment, decrement } from "../actions/counterAction.js";
const initialState = 0;
const counterReducer = createReducer(initialState,
(builder) => {
builder
.addCase(increment, (state) => state + 1)
.addCase(decrement, (state) => state - 1);
});
export default counterReducer;
Spiegazione del codice:
- Riga 1: Importa la funzione
createReducerdal pacchetto@reduxjs/toolkit. Questa funzione viene utilizzata per creare reducer in Redux; - Riga 2: Importa i creator di azioni
incrementedecrementdal file../actions/counterAction.js. Questi creator di azioni vengono utilizzati per definire le azioni che il reducer gestirà; - Riga 4: Imposta la costante
initialStatea0. Questo rappresenta il valore iniziale del contatore nello store Redux; - Riga 6: Utilizza la funzione
createReducerper definire ilcounterReducer; - Riga 6-11: La funzione
createReduceraccetta due argomenti: l'initialStatee una funzione di callback che definisce come lo stato deve essere aggiornato in base alle azioni inviate; - Riga 7: Utilizza l'oggetto
builderper definire i casi per le diverse azioni all'interno della funzione di callback; - Riga 9, 10: Utilizza il metodo
addCasedell'oggettobuilderper definire come lo stato deve essere aggiornato quando vengono inviate azioni specifiche, comeincrementedecrement; - Riga 9, 10: La funzione di callback all'interno di
addCaseprende lo stato attuale (state) come argomento e restituisce il nuovo stato dopo aver applicato l'azione corrispondente; - In questo caso, quando viene inviata l'azione
increment, lo stato viene incrementato di1; quando viene inviata l'azionedecrement, lo stato viene decrementato di1; - Riga 13: Infine, esporta il
counterReducercome esportazione predefinita del modulo.
Nota
In sintesi, il
counterReducergestirà le azioni inviate e aggiornerà di conseguenza lo stato del contatore nello store Redux.
1. Quale funzione viene utilizzata per creare i reducer in Redux?
2. Qual è lo scopo dell'oggetto builder nel codice?
3. Cosa succede allo stato quando viene dispatchata l'azione increment?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain how the builder callback works in createReducer?
What happens if an unknown action is dispatched to the counterReducer?
Can you show an example of how to dispatch the increment or decrement actions?
Fantastico!
Completion tasso migliorato a 4.17
Comprendere il Ruolo dei Reducer
Scorri per mostrare il menu
Teoria
I reducer sono funzioni pure che specificano come lo stato deve cambiare in risposta alle azioni inviate. Prendendo lo stato attuale e un'azione come parametri, i reducer restituiscono il nuovo stato dell'applicazione.
Pratica
Nella cartella reducers del nostro progetto, abbiamo il file counterReducer.js dove definiamo il reducer per la funzionalità del contatore:
import { createReducer } from "@reduxjs/toolkit";
import { increment, decrement } from "../actions/counterAction.js";
const initialState = 0;
const counterReducer = createReducer(initialState,
(builder) => {
builder
.addCase(increment, (state) => state + 1)
.addCase(decrement, (state) => state - 1);
});
export default counterReducer;
Spiegazione del codice:
- Riga 1: Importa la funzione
createReducerdal pacchetto@reduxjs/toolkit. Questa funzione viene utilizzata per creare reducer in Redux; - Riga 2: Importa i creator di azioni
incrementedecrementdal file../actions/counterAction.js. Questi creator di azioni vengono utilizzati per definire le azioni che il reducer gestirà; - Riga 4: Imposta la costante
initialStatea0. Questo rappresenta il valore iniziale del contatore nello store Redux; - Riga 6: Utilizza la funzione
createReducerper definire ilcounterReducer; - Riga 6-11: La funzione
createReduceraccetta due argomenti: l'initialStatee una funzione di callback che definisce come lo stato deve essere aggiornato in base alle azioni inviate; - Riga 7: Utilizza l'oggetto
builderper definire i casi per le diverse azioni all'interno della funzione di callback; - Riga 9, 10: Utilizza il metodo
addCasedell'oggettobuilderper definire come lo stato deve essere aggiornato quando vengono inviate azioni specifiche, comeincrementedecrement; - Riga 9, 10: La funzione di callback all'interno di
addCaseprende lo stato attuale (state) come argomento e restituisce il nuovo stato dopo aver applicato l'azione corrispondente; - In questo caso, quando viene inviata l'azione
increment, lo stato viene incrementato di1; quando viene inviata l'azionedecrement, lo stato viene decrementato di1; - Riga 13: Infine, esporta il
counterReducercome esportazione predefinita del modulo.
Nota
In sintesi, il
counterReducergestirà le azioni inviate e aggiornerà di conseguenza lo stato del contatore nello store Redux.
1. Quale funzione viene utilizzata per creare i reducer in Redux?
2. Qual è lo scopo dell'oggetto builder nel codice?
3. Cosa succede allo stato quando viene dispatchata l'azione increment?
Grazie per i tuoi commenti!