⊗jsrxPmRDEP 23 of 57 menu

Produkta datu maiņa Redux store

Mēs iemācījāmies pievienot produktus, bet ko ja mēs vēlēsimies mainīt informāciju par produktu? Apskatīsim, kā to izdarīt šajā un turpmākajās nodarbībās.

Atvērsim mūsu lietotni ar produktiem un dosimies uz failu productsSlice.js. Sāksim ar to, ka mums vajadzīgs produktu slīcenim products uzrakstīt vēl vienu reduceri, kas tiks palaists, kad produkts tiek atjaunināts. Nosauksim to par productUpdated un pievienosim laukā reducers aiz reducera productAdded. Arī nekavējoties padodam tam parametrus state un action, uz kuru pamata, kā mēs atceramies, strādā reducers:

reducers: { productAdded(state, action) { state.push(action.payload) }, productUpdated(state, action) {}, },

Tagad padomāsim, kādi dati mums būs nepieciešami, lai atjauninātu produktu. Vispirms visu - tas ir id, pēc tā mēs varēsim atrast interesējošo produktu store. Pārējie dati - nosaukums, apraksts, cena un daudzums būs mūsu rīcībā izmaiņām. Visas šīs vērtības mēs iegūsim no īpašības payload objekta action, kas mums ieradīsies, un, ja mēs rakstītu to ar rokām, tas izskatītos tā, kā parādīts zemāk. Ievērojiet, ka gaidāmā vērtība īpašībai payload - viens arguments, tāpēc mēs padodam šeit objektu (par to mēs runāsim tālāk):

{ type: 'products/productUpdated', payload: {id, name, desc, price, amount} }

Noskaidrojot galvenos punktus, tagad mēs varam ierakstīt cirtainajās iekavās kodu priekš productUpdated. Vispirms iegūstam no objekta action mainītos datus:

productUpdated(state, action) { const { id, name, desc, price, amount } = action.payload },

Tagad mēs atradīsim pēc iegūtā id produktu, kas jāmaina:

productUpdated(state, action) { const { id, name, desc, price, amount } = action.payload const desiredProduct = state.find(product => product.id === id) },

Ja šāds produkts tika atrasts store, tad mēs aizstāsim tā datus ar jaunām vērtībām:

productUpdated(state, action) { const { id, name, desc, price, amount } = action.payload const desiredProduct = state.find(product => product.id === id) if (desiredProduct) { desiredProduct.name = name desiredProduct.desc = desc desiredProduct.price = price desiredProduct.amount = amount } },

Mums atliek tikai eksportēt action creator lietošanai komponentē, ko laipni mums izveidos createSlice. Pievienosim to eksportam faila beigās, līdzās esošajam productAdded:

export const { productAdded, productUpdated } = productsSlice.actions

Atveriet savu lietotni ar studentiem. Izpētījuši nodarbības materiālu, failā studentsSlice.js pierakstiet vēl vienu reduceri priekš productsSlice, kas atjauninās studenta datus store, ja tos maina lietotājs. Nosauciet to par studentUpdated.

Un kā šajā gadījumā izskatītos jūsu action objekts? Iesniedziet tā kodu atbildē.

Faila beigās eksportējiet iegūto action creator studentUpdated.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt