⊗jsrxPmWFRAA 17 of 57 menu

Reduxdagi Reducer va action

Oldingi darsda biz mahsulot qo'shish uchun formani yakunladik va uni asosiy sahifada ko'rsatdik. Lekin hozircha qo'shilgan ma'lumotlar saqlanmayapti, boshqacha qilib aytganda, yangi mahsulot storeda mavjud bo'lganlarga qo'shilmayapti. Buni tuzataylik.

Boshlash uchun, bizning mahsulotlar ilovasida productsSlice.jsx faylini ochamiz va createSlice uchun reducer xususiyatida storega mahsulot qo'shish bilan shug'ullanadigan, unga joriy holat va action uzatiladigan productAdded funksiyasini yozamiz. Shuni ta'kidlash kerakki, bu yerda bizga butun state emas, balki faqat mahsulotlar uchun javob beradigan qismi uzatiladi (products slice faqat shu haqida biladi). Yangi mahsulot ob'ekti forma saqlash tugmasi bosilganda handler tomonidan yaratiladigan action ob'ektining payload xususiyatida bo'ladi. Natijada productAdded reduceri createSlice kodida shunday ko'rinadi:

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

Action haqida nima deyish mumkin? Darslikning boshida biz action - bu ilovada sodir bo'lgan narsani tasvirlaydigan, ob'ekt shaklida ifodalangan voqea ekanligini aytgan edik. Biz shuningdek, action creator funksiyasidan foydalanishimiz mumkinligi haqida ham gapirdik, u bizga shunday ob'ekt yaratib beradi, masalan:

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

Yaxshi xabar shundaki, bizga hech narsa qilish shart emas, buning o'rniga biz foydalanayotgan createSlice funksiyasi buni biz uchun qiladi. Biz reducerni yozganimiz bilan, u avtomatik ravishda biz uchun xuddi shu nomdagi action creatorni yaratadi. Biz faqat olingan action creatorni komponentlarda keyingi foydalanish uchun eksport qilishimiz kerak. Buni fayl oxirida, reducer eksportidan oldin shunday qilamiz:

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

Talabalar bilan bog'liq ilovingizni oching, keyin studentsSlice.jsx faylini oching, createSlice uchun reducer maydonining qiymatini darsda ko'rsatilgandek yozing.

studentsSlice.jsx faylining oxiriga olingan action creator funksiyasini eksport qo'shing.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish