⊗jsrxPmWFRAA 17 of 57 menu

Reduser og action i Redux

I forrige leksjon fullførte vi skjemaet for å legge til et produkt og viste det på hovedsiden. Men foreløpig blir de lagt til dataene ikke lagret, med andre ord blir det nye produktet ikke lagt til de eksisterende i store. La oss fikse dette.

Først i vår produktapplikasjon åpner vi filen productsSlice.jsx og skriver i egenskapen reducer for createSlice en funksjon productAdded, som vil håndtere tilføyelsen av et produkt til store basert på den nåværende tilstanden og handlingen som sendes til den. Det bør bemerkes at det ikke er hele state som sendes hit, men bare den delen som ansvarer for produkter (slice products kjenner bare til den). Objektet med det nye produktet vil være i egenskapen payload til objektet action, som vil bli generert av behandleren når lagre-knappen trykkes i skjemaet. Resultatet vil være at redusereren productAdded vil se slik ut i koden for createSlice:

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

Hva med action? helt i starten av opplæringen nevnte vi at en action er en hendelse presentert som et objekt, som beskriver det som skjedde i applikasjonen. Vi snakket også om at vi kan bruke en action creator-funksjon, som vil lage et slikt objekt for oss, for eksempel slik:

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

Den gode nyheten er at vi ikke trenger å gjøre noe med dette, for funksjonen createSlice vil gjøre det for oss. Så snart vi har skrevet en reduser, vil den automatisk lage en action creator med samme navn for oss. Alt vi må gjøre er å eksportere den resulterende action creator for videre bruk i komponenter. La oss gjøre dette på slutten av filen før eksport av redusereren, slik:

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

Åpne applikasjonen din med studenter, og deretter filen studentsSlice.jsx, skriv til verdien for feltet reducer for createSlice, som vist i leksjonen.

Legg til på slutten av filen studentsSlice.jsx en eksport av den resulterende action creator-funksjonen.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis