⊗jsrxPmRDDA 33 of 57 menu

Kutuma Action katika Programu ya Redux

Sasa tuna reducer ya kusasisha kipande cha mwitikio. Kwa sasa tunahitaji kuongeza kutuma action, ambayo itatokea wakati mtumiaji anapobofya kifungo cha mwitikio. Lakini kabla ya hayo, ili yote ifanye kazi kikamilifu, tunahitaji kufanya mabadiliko kadhaa.

Wacha tufungue programu yetu ya bidhaa, na ndani yake faili productsSlice.js. Angalia ufafanuzi wa initialState. Unaona? Katika vitu hakuna sifa ya miwitikio. Wacha tuirekebishe, tukiweka kichupo cha kila moja ya miwitikio kuwa 0:

{ id: '1', title: 'Product1', desc: 'This is an amazing product', price: '300', amount: '30', reactions: { good: 0, soso: 0, bad: 0, }, },

Katika kitu cha pili cha uanzishaji ongeza sifa reactions wewe mwenyewe. Sifa hii inahitajika kuongezwa chini katika msimbo wa reducer productAdded, ili bidhaa mpya pia ziwe na utendakazi huu. Wacha tufanye hivyo kwa njia yake prepare:

prepare(title, desc, price, amount, sellerId) { return { payload: { id: nanoid(), title, desc, price, amount, seller: sellerId, reactions: { good: 0, soso: 0, bad: 0, }, }, } },

Sasa tuanze kutuma action. Wacha tufungue faili UserReactions.jsx, kisha tuingize ndani yake kuingiza useDispatch na reactionClicked:

import { useDispatch } from 'react-redux' import { reactionClicked } from './productsSlice'

Mwanzoni mwa msimbo kwenye mwili wa chaguo za kukokotoa UserReactions mstari wa kwanza (kabla ya const userReactions ... ) tuandike:

const dispatch = useDispatch()

Na tuweke kwenye kifungo cha mwitikio kutuma reactionClicked wakati wa kubofya, wakati huo huo kutapelekwa kitambulisho cha bidhaa na jina la mwitikio, ambayo ilibofywa:

<button key={name} type="button" className="reaction-button" onClick={() => dispatch(reactionClicked({ productId: product.id, reaction: name })) } > {image} {product.reactions[name]} </button>

Imebaki kwetu sasa kuonyesha sehemu ya miwitikio kwenye muundo wa kurasa zetu. Wacha tufanye hivyo kwenye faili ProductsList.jsx kabla ya kipengele Link:

<UserReactions product={product} />

Na vivyo hivyo kabla ya kipengele Link kwenye ukurasa wa bidhaa kwenye faili ProductPage.jsx:

<UserReactions product={product} />

Sasa, wakati kila kitu kimesimama mahali pake, tunaweza kuzindua programu yetu. Wacha tujaribu kubofya vibonye vya miwitikio. Tunaweza kuongeza bidhaa mpya na pia kubofya kwao. Sasa, popote tulipobofya kwenye vifungo vya miwitikio, thamani zilizobadilishwa zitaonyeshwa kwa bidhaa hii kwenye kurasa zote. Angalia ukurasa wa bidhaa ya pekee (ambayo ulibofya kwenye miwitikio) na ukurasa wa orodha yao na kinyume chake, kwa kurasa zote idadi ya miwitikio kwa bidhaa maalum itakuwa sawa.

Somo hili lilikuwa la kumalizia katika sura ya kufanya kazi na data katika Redux. Tumefanya kazi kwa kina zaidi na data katika kuhifadhi duka la Redux na sasa tunajua, jinsi ya kuongeza utendakazi unaohitajika katika programu na kutumia data katika sehemu za React.

Fungua programu yako ya wanafunzi. Kwenye faili studensSlice.js vitu vya uanzishaji ongeza sifa votes na sehemu zinazofanana. Fanya hii na kwa reducer studentAdded.

Ndani ya chaguo za kukokotoa UserVotes kwenye faili UserVotes.jsx weka dispatch kwa kuingiza useDispatch na fanya kutuma kitendo voteClicked kwa kubofya kwenye vibonye vya kupigia kura, wasilisha kwake kitambulisho cha mwanafunzi na jina la vote, kufanana na vile inavyoonyeshwa kwenye somo.

Onyesha vibonye vya kupigia kura kwenye muundo wa sehemu za StudentsList na StudentPage.

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