⊗jsrxPmWFRAA 17 of 57 menu

Reducer och action i Redux

I förra lektionen avslutade vi formuläret för att lägga till en produkt och visade det på hemsidan. Men de tillagda uppgifterna sparas inte ännu, med andra ord läggs den nya produkten inte till de befintliga i store. Låt oss åtgärda detta.

Först i vår produktapplikation öppnar vi filen productsSlice.jsx och skriver i egenskapen reducer för createSlice funktionen productAdded, som kommer att hantera tillägget av en produkt till store baserat på det nuvarande tillståndet och action som skickas till den. Det är viktigt att notera att vi här inte får hela state, utan bara den del som ansvarar för produkter (slice products känner bara till den). Objektet med den nya produkten kommer att finnas i egenskapen payload i objektet action, som kommer att genereras av hanteraren när spara-knappen trycks i formuläret. Resultatet blir att reducern productAdded kommer att se ut så här i koden för createSlice:

const productsSlice = createSlice({ name: 'products', initialState, reducers: { productAdded(state, action) { state.push(action.payload) }, }, })

Hur är det med action? I början av handledningen nämnde vi att en action är en händelse, representerad som ett objekt, som beskriver vad som har hänt i applikationen. Vi pratade också om att man kan använda en action creator-funktion, som skulle skapa ett sådant objekt åt oss, till exempel så här:

const addProduct = newProduct => { return { type: 'products/productAdded', payload: newProduct } }

Den goda nyheten är att vi inte behöver göra någonting, för createSlice-funktionen gör det åt oss. Så snart vi har skrivit en reducer skapar den automatiskt en action creator med samma namn åt oss. Vi behöver bara exportera den resulterande action creatern för vidare användning i komponenter. Låt oss göra det i slutet av filen före exporten av reducern, så här:

export const { productAdded } = productsSlice.actions export default productsSlice.reducer

Öppna din studentapplikation, och sedan filen studentsSlice.jsx, lägg till värdet för fältet reducer för createSlice, som visas i lektionen.

Lägg till i slutet av filen studentsSlice.jsx export av den resulterande action creator-funktionen.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa