⊗jsrxPmWFRAA 17 of 57 menu

Reducer și action în Redux

În lecția precedentă am terminat formularul pentru adăugarea produsului și l-am afișat pe pagina principală. Dar datele adăugate nu se salvează încă, cu alte cuvinte noul produs nu se adaugă la cele existente în store. Să reparăm acest lucru.

Pentru început, în aplicația noastră cu produse deschidem fișierul productsSlice.jsx și scriem în proprietatea reducer pentru createSlice funcția productAdded, care se va ocupa cu adăugarea produsului în store pe baza datelor transmise: starea curentă și acțiunea. Trebuie menționat că aici nu ni se transmite întregul state, ci doar acea parte care răspunde de produse (slice-ul products știe doar despre ea). Obiectul cu noul produs va fi în proprietatea payload a obiectului action, care va fi generat de manipulatorul la apăsarea butonului de salvare în formular. Ca rezultat, reducer-ul productAdded va arăta în codul createSlice astfel:

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

Și cum rămâne cu action? La începutul tutorialului am menționat că action este un eveniment, reprezentat ca un obiect, care descrie ce s-a întâmplat în aplicație. Am vorbit și despre faptul că putem folosi funcția action creator, care va crea un astfel de obiect pentru noi, de exemplu astfel:

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

Vestea bună este că nu trebuie să facem nimic, iar acest lucru va fi făcut pentru noi de funcția createSlice pe care o folosim. De îndată ce am scris reducer-ul, ea va crea automat pentru noi action creator cu același nume. Nouă ne rămâne doar să exportăm action creator-ul obținut pentru utilizarea ulterioară în componente. Să facem acest lucru la sfârșitul fișierului înainte de exportarea reducer-ului, astfel:

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

Deschideți aplicația voastră cu studenți, apoi fișierul studentsSlice.jsx, completați valoarea câmpului reducer pentru createSlice, așa cum este arătat în lecție.

Adăugați la sfârșitul fișierului studentsSlice.jsx exportul funcției action creator obținute.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge