⊗jsrxPmWFRAA 17 of 57 menu

Reducer en action in Redux

In de vorige les hebben we het formulier voor het toevoegen van een product afgerond en weergegeven op de hoofdpagina. Maar voorlopig worden de toegevoegde gegevens niet opgeslagen, met andere woorden het nieuwe product wordt niet toegevoegd aan de bestaande in de store. Laten we dit oplossen.

Om te beginnen openen we in onze applicatie met producten het bestand productsSlice.jsx en schrijven we in de eigenschap reducer voor createSlice de functie productAdded, die zich zal bezighouden met het toevoegen van een product aan de store op basis van de doorgegeven huidige state en action. Op te merken valt dat hier niet de volledige state wordt doorgegeven, maar alleen het deel dat verantwoordelijk is voor producten (de slice products kent alleen dit deel). Het object met het nieuwe product zit in de eigenschap payload van het object action, die gegenereerd wordt door de event handler bij het klikken op de opslaanknop in het formulier. Uiteindelijk ziet de reducer productAdded er zo uit in de code van createSlice:

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

En hoe zit het met action? Helemaal aan het begin van de tutorial hebben we vermeld dat een action een bepaalde gebeurtenis is, vertegenwoordigd als een object, dat beschrijft wat er is gebeurd in de applicatie. We hebben ook gesproken over het feit dat we een action creator functie kunnen gebruiken, die zo'n object voor ons aanmaakt, bijvoorbeeld zo:

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

Het goede nieuws is dat we niets hoeven te doen, en dat de functie createSlice dit voor ons zal doen, die we gebruiken. Zodra we de reducer hebben geschreven, zal deze automatisch een action creator met dezelfde naam voor ons aanmaken. Het enige wat we hoeven te doen is de verkregen action creator exporteren voor verdere toepassing in componenten. Laten we dit aan het einde van het bestand doen, vóór het exporteren van de reducer, zoals hier:

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

Open je applicatie met studenten, en open dan het bestand studentsSlice.jsx, vul de waarde van het veld reducer in voor createSlice, zoals getoond in de les.

Voeg aan het einde van het bestand studentsSlice.jsx de export van de verkregen action creator functie toe.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren