⊗jsrxPmRDEP 23 of 57 menu

Mengubah Data Produk di Redux Store

Kita telah belajar menambahkan produk, tetapi bagaimana jika kita ingin mengubah informasi tentang produk? Mari kita bahas cara melakukannya dalam pelajaran ini dan selanjutnya.

Buka aplikasi produk kita dan masuk ke file productsSlice.js. Kita mulai dari yang kita perlukan untuk slice products menulis reducer lain, yang akan dijalankan saat produk diperbarui. Sebut saja productUpdated dan tambahkan ke field reducers setelah reducer productAdded. Juga berikan parameter state dan action, yang berdasarkan itu, seperti yang kita ingat, reducer bekerja:

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

Sekarang mari kita pikirkan, data apa yang kita perlukan untuk memperbarui produk. Pertama-tama - ini adalah id, dengan itu kita dapat menemukan produk yang kita minati di store. Data lainnya - nama, deskripsi, harga, dan jumlah akan kita gunakan untuk perubahan. Semua nilai ini akan kita dapatkan dari properti payload objek action, yang akan datang kepada kita, dan, jika kita menulisnya secara manual, maka akan terlihat seperti yang ditunjukkan di bawah ini. Perhatikan bahwa nilai yang diharapkan dari properti payload - satu argumen, jadi kita akan menyampaikan objek ke sini (tentang ini kita akan bicara selanjutnya):

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

Setelah mengetahui poin-poin utamanya, sekarang kita bisa menulis kode di dalam kurung kurawal untuk productUpdated. Pertama, dapatkan dari objek action data yang diubah:

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

Sekarang kita akan temukan berdasarkan id yang didapat, produk yang perlu diubah:

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

Jika produk seperti itu ditemukan di store, maka kita akan mengganti datanya dengan nilai baru:

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

Kita tinggal mengekspor action creator untuk digunakan di komponen, yang akan dengan mudah dibuat untuk kita oleh createSlice. Mari tambahkan ke ekspor di akhir file, bersama dengan productAdded yang sudah ada:

export const { productAdded, productUpdated } = productsSlice.actions

Buka aplikasi Anda dengan siswa. Setelah mempelajari materi pelajaran, di file studentsSlice.js tulislah reducer lain untuk productsSlice, yang akan memperbarui data siswa di store jika diubah oleh pengguna. Sebut saja studentUpdated.

Dan bagaimana kira-kira objek action Anda dalam kasus ini? Kirimkan kodenya dalam jawaban.

Di akhir file, ekspor action creator studentUpdated yang didapat.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak