⊗jsrxPmRDEP 23 of 57 menu

Redux store'da ürün verilerini değiştirme

Ürün eklemeyi öğrendik, peki ya bir ürünle ilgili bilgileri değiştirmek istiyorsak? Bunun nasıl yapılacağını bu ve sonraki derslerde inceleyelim.

Ürün uygulamamızı açalım ve productsSlice.js dosyasına girelim. products dilimi için, bir ürün güncellendiğinde tetiketlenecek başka bir reducer yazmamız gerekiyor. Ona productUpdated adını verelim ve reducers alanına productAdded reducer'ından sonra ekleyelim. Ayrıca hemen parametre olarak state ve action'ı geçelim, hatırladığımız gibi reducer bunlar üzerinde çalışır:

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

Şimdi bir ürünü güncellemek için hangi verilere ihtiyacımız olacağını düşünelim. Her şeyden önce - bu id, onunla store'daki ilgilendiğimiz ürünü bulabileceğiz. Geri kalan veriler - isim, açıklama, fiyat ve miktar değişiklik için bizde olacak. Tüm bu değerleri bize gelen action nesnesinin payload özelliğinden alacağız, ve eğer onu elle yazıyor olsaydık, aşağıda gösterildiği gibi görünürdü. payload özelliğinin beklenen değerinin tek bir argüman olduğuna dikkat edin, bu yüzden buraya bir nesne ileteceğiz (bundan sonraki kısımda bunun hakkında konuşacağız):

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

Ana noktaları belirledikten sonra, şimdi productUpdated için süslü parantezler içine kodu yazabiliriz. Önce action nesnesinden değiştirilen verileri alalım:

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

Şimdi alınan id'ye göre, değiştirilmesi gereken ürünü bulacağız:

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

Eğer böyle bir ürün store'da bulunursa, onun verilerini yeni değerlerle değiştireceğiz:

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 } },

Geriye kalan, bileşende kullanılmak üzere action creator'ı dışa aktarmak, ki bunu createSlice bizim için istekle oluşturacak. Onu mevcut productAdded ile birlikte, dosyanın sonundaki dışa aktarıma ekleyelim:

export const { productAdded, productUpdated } = productsSlice.actions

Öğrenci uygulamanızı açın. Ders materyalini inceledikten sonra, studentsSlice.js dosyasında productsSlice için, kullanıcı tarafından değiştirildiklerinde store'daki öğrenci verilerini güncelleyecek başka bir reducer yazın. Ona studentUpdated adını verin.

Peki bu durumda sizin action nesneniz nasıl görünürdü? Kodunu yanıt olarak gönderin.

Dosyanın sonunda, elde edilen action creator studentUpdated'ı dışa aktarın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet