⊗jsrxPmWFRAA 17 of 57 menu

Reducers un action Redux

Iepriekšējā nodarbībā mēs pabeidzām formas veidni produkta pievienošanai un izvadījām to galvenajā lapā. Bet pagaidām pievienotie dati netiek saglabāti, citiem vārdiem sakot, jaunais produkts netiek pievienots esošajiem store. Izlabosim to.

Vispirms mūsu produktu lietotnē mēs atvērsim failu productsSlice.jsx un ierakstīsim īpašumā reducer priekš createSlice funkciju productAdded, kas nodarbosies ar produkta pievienošanu store, balstoties uz tai nodoto pašreizējo stāvokli un darbību. Jāatzīmē, ka šeit mums tiek nodots ne viss state, bet tikai tā daļa, kas atbild par produktiem (slīds products zina tikai par to). Objekts ar jauno produktu būs īpašumā payload objekta action, kas tiks ģenerēts apstrādātājprogrammā, nospiežot saglabāšanas pogu formā. Rezultātā reducers productAdded izskatīsies kodā createSlice šādi:

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

Kā ir ar action? Pašā mācību grāmatas sākumā mēs minējām, ka action - tas ir kāds notikums, kas attēlots kā objekts, kas apraksta to, kas noticis lietotnē. Mēs runājām arī par to, ka var izmantot funkciju action creator, kas mums izveidos tādu objektu, piemēram, šādi:

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

Labā ziņa ir tā, ka mums nekas nav jādara, to visu mūsu vietā paveiks funkcija createSlice, ko mēs izmantojam. Tiklīdz mēs esam uzrakstījuši reducer, tā automātiski mums izveidos action creator ar tādu pašu nosaukumu. Mums tikai jāeksportē iegūtais action creator tālākai lietošanai komponentos. Darīsim to faila beigās pirms reducera eksporta, šādi:

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

Atveriet savu studentu lietotni, tad failu studentsSlice.jsx, papildiniet lauka reducer vērtību priekš createSlice, kā parādīts nodarbībā.

Pievienojiet faila studentsSlice.jsx beigās iegūtās funkcijas action creator eksportu.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt