Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Förståelse för Reducerarnas Roll | Använda Redux Toolkit i React
Tillståndshantering med Redux Toolkit i React

bookFö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 createReducer från paketet @reduxjs/toolkit. Denna funktion används för att skapa reducers i Redux;
  • Rad 2: Importera action creators increment och decrement frå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 initialState till 0. Detta representerar det initiala värdet för räknaren i Redux store;
  • Rad 6: Använd funktionen createReducer för att definiera counterReducer;
  • Rad 6-11: Funktionen createReducer tar två argument: initialState och en callback-funktion som definierar hur tillståndet ska uppdateras baserat på skickade actions;
  • Rad 7: Använd objektet builder för att definiera fall för olika actions inuti callback-funktionen;
  • Rad 9, 10: Använd metoden addCase på objektet builder för att definiera hur tillståndet ska uppdateras när specifika actions, såsom increment och decrement, skickas;
  • Rad 9, 10: Callback-funktionen inuti addCase tar 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 increment skickas, ökas tillståndet med 1; när action decrement skickas, minskas tillståndet med 1;
  • Rad 13: Slutligen exporteras counterReducer som standardexport från modulen.

Notera

Sammanfattningsvis kommer counterReducer att 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?

question mark

Vilken funktion används för att skapa reducers i Redux?

Select the correct answer

question mark

Vad är syftet med objektet builder i koden?

Select the correct answer

question mark

Vad händer med tillståndet när increment-åtgärden skickas?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

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

bookFö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 createReducer från paketet @reduxjs/toolkit. Denna funktion används för att skapa reducers i Redux;
  • Rad 2: Importera action creators increment och decrement frå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 initialState till 0. Detta representerar det initiala värdet för räknaren i Redux store;
  • Rad 6: Använd funktionen createReducer för att definiera counterReducer;
  • Rad 6-11: Funktionen createReducer tar två argument: initialState och en callback-funktion som definierar hur tillståndet ska uppdateras baserat på skickade actions;
  • Rad 7: Använd objektet builder för att definiera fall för olika actions inuti callback-funktionen;
  • Rad 9, 10: Använd metoden addCase på objektet builder för att definiera hur tillståndet ska uppdateras när specifika actions, såsom increment och decrement, skickas;
  • Rad 9, 10: Callback-funktionen inuti addCase tar 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 increment skickas, ökas tillståndet med 1; när action decrement skickas, minskas tillståndet med 1;
  • Rad 13: Slutligen exporteras counterReducer som standardexport från modulen.

Notera

Sammanfattningsvis kommer counterReducer att 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?

question mark

Vilken funktion används för att skapa reducers i Redux?

Select the correct answer

question mark

Vad är syftet med objektet builder i koden?

Select the correct answer

question mark

Vad händer med tillståndet när increment-åtgärden skickas?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 7
some-alt