⊗jsrxPmWFRAA 17 of 57 menu

Редьюсер ва action Redux-да

Ўтган дарсда биз махсул кушиш учун шаклини якунладик ва уни бош саҳифада кўрсатдик. Лекин ҳозиргача кушилган маълумотлар сақланмайди, бошқача айтганда янги маҳсул мавжуд store-дагиларга кушилмайди. Келинг, буни тузатайлик.

Бошлаш учун бизнинг маҳсулотлар иловамизда productsSlice.jsx файлини ochамиз ва createSlice учун reducer хусусиятида productAdded функциясини ёзамиз, унинг вазифаси унга ўтказилган жорий стейт ва экшн асосида store-га маҳсул кушиш бўлади. Шуни айтиш керакки, бу ерда бизга butun state эмас, балки маҳсулотлар учун жавоб берадиган унинг факатгина бир кисми (products слайси факат у ҳақида билади) ўтказилади. Янги маҳсулот билан объект action объектининг payload хусусиятида бўлади, у сақлаш тугмаси босиладида шакл ишловчиси томонидан ишлаб чиқарилади. Натижада productAdded редьюсер createSlice да қуйидагича кўринади:

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

Action ҳақида нима деймиз? Дарсликнинг бошланишида биз action - бу иловада юз берган воқеани тасвирловчи объект шаклидаги баъзи бир воқеа, деб айтиб ўтгандик. Биз шуни ҳам айтгандикки action creator функциясидан фойдаланиш мумкин, у бизга мана шундай объект яратиб беради, масалан:

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

Яхши хабар шундаки, бизга ҳеч нарса қилиш шарт эмас, буни биз учун биз ишлатаётган createSlice функцияси бажаради. Биз reducer-ни ёзган билан, у автоматик равишда биз учун шу ном билан action creator яратади. Бизга факат компонентларда кейинроқ қўллаш учун олинган action creator-ни экспорт қилиш қолади. Буни файлнинг охирида редьюсерни экспорт қилишдан олдин, мана шундай қиламиз:

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

Сизнинг талабалар иловангизни ochинг, сўнгра studentsSlice.jsx файлини ochиб, createSlice учун reducer майдонининг қийматини дарсда кўрсатилганидек язаверинг.

studentsSlice.jsx файлининг охирига олинган action creator функциясини экспорт қушинг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш