⊗jsrxPmRDPAD 26 of 57 menu

Andmete ettevalmistamine Reduxi tegevusobjektile

{Hiljuti rääkisime teiega, et} {funktsioon} createSlice {ootab ühte} {argumenti} action.payload {loomisel.} {Ühest küljest lihtsustab see selle kasutamist,} {teisest küljest võib see nõuda täiendavaid} {meetmeid tegevusobjekti sisu ettevalmistamiseks.}

{Avame oma tooterakenduse ja selles faili} NewProductForm.jsx. {Pöörake tähelepanu järgmisele koodireale:}

dispatch(productAdded({ id: nanoid(), name, desc, price, amount }))

{Siin koostame} payload {objekti} {otse React komponendis ja edastame selle} {tegevusse} productAdded. {Aga mis siis, kui me} {peame saatma sama tegevuse mitmest} {komponendist või kui koostamise loogika osutub keeruliseks?} {Idee poolest ei peaks meie komponendil olema vahet,} {kuidas} payload {objekt selle tegevuse jaoks välja näeb.} {Samuti ei meeldi meile pidev koodi dubleerimine.}

{Neid probleeme võib aidata lahendada} {meie kuulus} createSlice, {kuna redutseeri kirjutamisel} {võimaldab see meil kasutada tagasikutsefunktsiooni} prepare, {milles saab kirjutada erinevat} {loogikat, genereerida juhuslikke numbreid ja muud sarnast.} {Sellisel juhul saab redutseerija välja väärtust} {esitada järgmise objekti kujul:}

{reducer, prepare}

{Avame oma faili} productsSlice.js {ja muudame koodi redutseerija} productAdded {jaoks.} {Nüüd on see koodilõik:}

productAdded(state, action) { state.push(action.payload) },

{Me muudame selle järgnevaks, kus} {funktsioon} reducer {tegeleb} {poe oleku uuendamisega ja} prepare - {tagastab} payload {objekti} {genereeritud id ja teie andmetega:}

productAdded: { reducer(state, action) { state.push(action.payload) }, prepare(name, desc, price, amount) { return { payload: { id: nanoid(), name, desc, price, amount, }, } }, },

{Kuna nüüd genereerime id siin,} {mitte komponendis, lisame nanoidi importi:}

import { createSlice, nanoid } from '@reduxjs/toolkit'

{Lõpetuseks teeme muudatused} {failis} NewProductForm.jsx. {Rea asemel:}

dispatch(productAdded({ id: nanoid(), name, desc, price, amount }))

{Meil on see, kus me lihtsalt} {koma abil edastame vajalikud} {andmed} ({ärge unustage selles failis eemaldada} nanoid {importist}):

dispatch(productAdded(name, desc, price, amount))

{Käivitame rakenduse, loome uue} {toote ja veendume, et me midagi} {katki ei teinud.}

{Avage oma üliõpilaste rakendus.} {Failis} StudentsSlice.js {kirjutage ümber} {oma redutseerija} studentAdded {nii,} {et see oleks objekti kujul} {reducer, prepare}, {nagu näidatud õppetükis.}

{Tehke vastavad muudatused} {failis} NewStudentForm.jsx, {nagu näidatud} {õppetükis. Käivitage rakendus ja veenduge,} {et kõik töötab nagu enne.}

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu