⊗jsrxPmRDEP 23 of 57 menu

Kubadilisha Data ya Bidhaa katika Redux Store

Tumejifunza kuongeza bidhaa, lakini vipi kama tutataka kubadilisha taarifa kuhusu bidhaa? Hebu tuchunguze jinsi ya kufanya hivyo katika somo hili na masomo yajayo.

Washa programu yetu ya bidhaa na uingie kwenye faili productsSlice.js. Tuanzie kwa kile tunachohitaji kwa kipande products kuandika reducer nyingine, ambayo itaanza wakati wa kusasisha bidhaa. Tuite productUpdated na tuiongeze kwenye uga reducers baada ya reducer productAdded. Pia tupitie mara moja vigezo state na action, kwa misingi ambayo, kama tunavyokumbuka, reducer inafanya kazi:

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

Sasa hebu tufikirie, ni data gani tutahitaji kwa ajili ya kusasisha bidhaa. Kabla ya yote - hii ni id, kwa hiyo tutaweza kupata bidhaa tunayopenda kwenye store. Data zingine - jina, maelezo, bei na kiasi zitakuwa kwetu kwa mabadiliko. Thamani hizi zote tutazipata kutoka kwa sifa payload ya kitu action, ambayo itatufikia, na, kama tungelikuwa tunaandika kwa mikono, basi ingeonekana kama inavyoonyeshwa hapa chini. Kumbuka kuwa thamani inayotarajiwa ya sifa payload - hoja moja, kwa hivyo tutakuwa tukipita hapa kitu (kuhusu hili tutazungumza zaidi baadaye):

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

Baada ya kufafanua mambo makuu, sasa tunaweza kuandika kwenye mabano ya curly msimbo wa productUpdated. Kwanza tupate kutoka kwa kitu action data iliyobadilishwa:

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

Sasa tutapata kwa id iliyopatikana bidhaa, ambayo inahitaji kubadilishwa:

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

Ikiwa bidhaa kama hiyo ilipatikana kwenye store, basi tutabadilisha data yake kwa maadili mapya:

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

Inatubaki tu kuhamasisha mtengenezaji wa action kwa matumizi katika sehemu, ambayo kwa ukarimu createSlice itatuundia. Wacha tuiongeze kwenye usafirishaji mwishoni mwa faili, pamoja na productAdded uliopo:

export const { productAdded, productUpdated } = productsSlice.actions

Fungua programu yako ya wanafunzi. Baada ya kusoma nyenzo ya somo, kwenye faili studentsSlice.js andika reducer nyingine kwa productsSlice, ambayo itasasisha data ya mwanafunzi kwenye store ikiwa imebadilishwa na mtumiaji. Uiite studentUpdated.

Na ingekuwa imeonekanaje katika kesi hii kitu chako cha action? Tuma msimbo wake kwenye jibu.

Mwishoni mwa faili safirisha mtengenezaji wa action uliopatikana studentUpdated.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa