⊗jsrxPmRDMDO 30 of 57 menu

Hergebruik van data uit 'n slice in Redux

In die vorige les het ons by die vorm vir die byvoeging van 'n produk nog 'n veld bygevoeg met 'n aftreklys om die verkoper te kies wat dit lys. Kom ons neem nou aan ons moet hierdie inligting ook in verskeie ander plekke in die toepassing uitvoer. Vir hierdie doel sal ons nie die kode elke keer herhaal nie, maar eerder 'n aparte komponent skep, waaruit ons die data uit die slice sal haal en dit uitvoer in die dele van die toepassing waar ons dit nodig het.

Laat ons ons produktoepassing oopmaak. Kom ons skep nou in die gids products 'n lêer SellerOfProd.jsx. Om mee te begin voer ons die hoek useSelector in, waarmee ons die slice met die nodige produk sal verkry:

import { useSelector } from 'react-redux'

Trek dan uit die store die nodige produk volgens die verkoper se id, wat ons aan ons nuwe komponent in die props sal oordra:

export const SellerOfProd = ({ sellerId }) => { const seller = useSelector((state) => state.sellers.find((seller) => seller.id === sellerId) ) }

En as daar so 'n verkoper is, sal ons sy naam teruggee, en indien nie, sal ons 'unknown' teruggee:

return <span>by {seller ? seller.name : 'unknown'}</span>

Laat ons nou ons nuwe komponent in ProductsList.jsx invoer en dit in die funksie ProductsList plaas, direk na die opskrif met die produknaam. Soos jy kan sien, het ons die id in die props aan hom oorgedra:

<SellerOfProd sellerId={product.seller} />

Nou, as ons ons toepassing begin, 'n nuwe produk byvoeg en dit in die lys vind, dan sal ons sien dat dit 'n verkoper het, en by die produkte wat outomaties bygevoeg is tydens die opstart van die toepassing, sal daar 'unknown' wees.

'n Klein afwyking: as jou eslint in die VS Code-redigeerder kla oor sellerId, maar die toepassing werk, kan jy dit vir nou ignoreer of die lêer .eslintrc.cjs van jou toepassing oopmaak en in rules byvoeg "react/prop-types": "off".

Dit spreek vanself dat ons die inligting oor die verkoper ook op die produkbladsy wou byvoeg. Om dit te doen, plaas ons in die opmaak van ProductPage na die opskrif met die produknaam weer hierdie reël en gaan na of alles werk:

<SellerOfProd sellerId={product.seller} />

Maak jou studentetoepassing oop. Nadat jy die lesse se materiaal bestudeer het, skep jy in die gids students 'n lêer vir die komponent TeacherForStudent. Uiteindelik moet die komponent die onderwyser se volle naam teruggee, en tussen hakies die vak wat hy/sy doseer. Vind die nodige onderwyser deur die hoek useSelector te gebruik. As daar nie 'n onderwyser vir die gegewe student is nie, voer 'anonym' uit.

Gebruik die verkrygde komponent uit die vorige taak om die data van die onderwyser vir elke student op die bladsy met die studentelys uit te voer.

Doen dieselfde as in die vorige taak, maar vir die afsonderlike bladsy van die student.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp