⊗jsrxPmWFRAA 17 of 57 menu

Reducer in action v Redux

V prejšnji lekciji smo končali obrazec za dodajanje izdelka in ga prikazali na glavni strani. Toda za zdaj se dodani podatki ne shranijo, z drugimi besedami, nov izdelek se ne doda k obstoječim v store. Popravimo to.

Za začetek bomo v naši aplikaciji z izdelki odprli datoteko productsSlice.jsx in napisali v lastnosti reducer za createSlice funkcijo productAdded, ki bo skrbela za dodajanje izdelka v store na podlagi posredovanega trenutnega stanja in akcije. Omeniti velja, da se nam tukaj ne posreduje celotno state, ampak le tisti del, ki odgovarja za izdelke (slice products pozna samo njega). Objekt z novim izdelkom bo v lastnosti payload objekta action, ki ga bo generiral obravnavalec ob pritisku na gumb za shranjevanje v obrazcu. Kot rezultat bo reducer productAdded v kodi createSlice videti takole:

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

Kaj pa action? Na samem začetku učbenika smo omenili, da je action neki dogodek, predstavljen v obliki objekta, ki opisuje, kar se je zgodilo v aplikaciji. Govorili smo tudi o tem, da lahko uporabimo funkcijo action creator, ki bo za nas ustvarila tak objekt, na primer takole:

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

Dobra novica je, da nam ni treba ničesar narediti, kajti to bo namesto nas naredila funkcija createSlice, ki jo uporabljamo. Takoj ko napišemo reducer, bo samodejno ustvarila za nas action creator z enakim imenom. Nam preostane le še izvoz nastalega action creatorja za nadaljnjo uporabo v komponentah. Naredimo to na koncu datoteke pred izvozom reducerja, takole:

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

Odprite vašo aplikacijo s študenti, nato pa datoteko studentsSlice.jsx in dopolnite vrednost polja reducer za createSlice, kot je prikazano v lekciji.

Dodajte na konec datoteke studentsSlice.jsx izvoz nastale funkcije action creator.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni