⊗jsrxPmWFRAA 17 of 57 menu

Reducer a action v Reduxe

Na minulej lekcii sme dokončili formulár pre pridanie produktu a zobrazili ho na hlavnej stránke. Ale zatiaľ pridané dáta sa neukladajú, inými slovami nový produkt sa nepridáva k existujúcim v store. Poďme to napraviť.

Na začiatok v našej aplikácii s produktmi otvoríme súbor productsSlice.jsx a napíšeme do vlastnosti reducer pre createSlice funkciu productAdded, ktorá sa bude zaoberať pridávaním produktu do store na základe odovzdaného jej aktuálneho stavu a action. Treba poznamenať, že tu sa nám odovzdáva nie celý state, ale iba tá jeho časť, ktorá zodpovedá za produkty (slice products pozná iba ju). Objekt s novým produktom bude nachádzať sa vo vlastnosti payload objektu action, ktorý bude generovaný obslužným programom pri kliknutí na tlačidlo uloženia vo formulári. Výsledkom reducer productAdded bude vyzerať v kóde createSlice takto:

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

A čo action? Na samom začiatku učebnice sme spomenuli, že action - je nejaká udalosť, reprezentovaná ako objekt, opisujúca to, čo sa stalo v aplikácii. Hovorili sme aj o tom, že je možné použiť funkciu action creator, ktorá nám bude vytvárať taký objekt, napríklad takto:

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

Dobrá správa je, že nemusíme nič robiť, a to za nás urobí funkcia createSlice, ktorú používame. Akonáhle sme napísali reducer, automaticky za nás vytvorí action creator s rovnakým menom. Nám iba ostáva exportovať získaný action creator pre ďalšie použitie v komponentoch. Urobme to na konci súboru pred exportom reducera, takto:

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

Otvorte vašu aplikáciu so študentmi, a potom súbor studentsSlice.jsx, dopíšte hodnotu poľa reducer pre createSlice, ako je ukázané na lekcii.

Pridajte na koniec súboru studentsSlice.jsx export získanej funkcie 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
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť