Förståelse för Reducerarnas Roll
Teori
Reducers är rena funktioner som specificerar hur tillståndet ska förändras som svar på skickade actions. Genom att ta in det aktuella tillståndet och en action som parametrar returnerar reducers det nya tillståndet för applikationen.
Praktik
I projektets reducers-mapp finns filen counterReducer.js där vi definierar reducern för vår räknarfunktionalitet:
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;
Kodförklaring:
- Rad 1: Importera funktionen
createReducerfrån paketet@reduxjs/toolkit. Denna funktion används för att skapa reducers i Redux; - Rad 2: Importera action creators
incrementochdecrementfrån filen../actions/counterAction.js. Dessa action creators används för att definiera de actions som reducern ska hantera; - Rad 4: Sätt konstanten
initialStatetill0. Detta representerar det initiala värdet för räknaren i Redux store; - Rad 6: Använd funktionen
createReducerför att definieracounterReducer; - Rad 6-11: Funktionen
createReducertar två argument:initialStateoch en callback-funktion som definierar hur tillståndet ska uppdateras baserat på skickade actions; - Rad 7: Använd objektet
builderför att definiera fall för olika actions inuti callback-funktionen; - Rad 9, 10: Använd metoden
addCasepå objektetbuilderför att definiera hur tillståndet ska uppdateras när specifika actions, såsomincrementochdecrement, skickas; - Rad 9, 10: Callback-funktionen inuti
addCasetar det aktuella tillståndet (state) som argument och returnerar det nya tillståndet efter att motsvarande action har tillämpats; - I detta fall, när action
incrementskickas, ökas tillståndet med1; när actiondecrementskickas, minskas tillståndet med1; - Rad 13: Slutligen exporteras
counterReducersom standardexport från modulen.
Notera
Sammanfattningsvis kommer
counterReduceratt hantera de skickade actions och uppdatera räknarens tillstånd i Redux store därefter.
1. Vilken funktion används för att skapa reducers i Redux?
2. Vad är syftet med objektet builder i koden?
3. Vad händer med tillståndet när increment-åtgärden skickas?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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?
Awesome!
Completion rate improved to 4.17
Förståelse för Reducerarnas Roll
Svep för att visa menyn
Teori
Reducers är rena funktioner som specificerar hur tillståndet ska förändras som svar på skickade actions. Genom att ta in det aktuella tillståndet och en action som parametrar returnerar reducers det nya tillståndet för applikationen.
Praktik
I projektets reducers-mapp finns filen counterReducer.js där vi definierar reducern för vår räknarfunktionalitet:
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;
Kodförklaring:
- Rad 1: Importera funktionen
createReducerfrån paketet@reduxjs/toolkit. Denna funktion används för att skapa reducers i Redux; - Rad 2: Importera action creators
incrementochdecrementfrån filen../actions/counterAction.js. Dessa action creators används för att definiera de actions som reducern ska hantera; - Rad 4: Sätt konstanten
initialStatetill0. Detta representerar det initiala värdet för räknaren i Redux store; - Rad 6: Använd funktionen
createReducerför att definieracounterReducer; - Rad 6-11: Funktionen
createReducertar två argument:initialStateoch en callback-funktion som definierar hur tillståndet ska uppdateras baserat på skickade actions; - Rad 7: Använd objektet
builderför att definiera fall för olika actions inuti callback-funktionen; - Rad 9, 10: Använd metoden
addCasepå objektetbuilderför att definiera hur tillståndet ska uppdateras när specifika actions, såsomincrementochdecrement, skickas; - Rad 9, 10: Callback-funktionen inuti
addCasetar det aktuella tillståndet (state) som argument och returnerar det nya tillståndet efter att motsvarande action har tillämpats; - I detta fall, när action
incrementskickas, ökas tillståndet med1; när actiondecrementskickas, minskas tillståndet med1; - Rad 13: Slutligen exporteras
counterReducersom standardexport från modulen.
Notera
Sammanfattningsvis kommer
counterReduceratt hantera de skickade actions och uppdatera räknarens tillstånd i Redux store därefter.
1. Vilken funktion används för att skapa reducers i Redux?
2. Vad är syftet med objektet builder i koden?
3. Vad händer med tillståndet när increment-åtgärden skickas?
Tack för dina kommentarer!