⊗jsrxPmRDMDO 30 of 57 menu

Gjenbruk av data fra en slice i Redux

I forrige forelesning la vi til et ekstra felt med en nedtrekksliste for å velge selger som legger den ut i skjemaet for å legge til produkt. La oss anta at vi nå også må vise denne informasjonen på flere steder i applikasjonen. For å gjøre dette vil vi ikke duplisere koden hver gang, men bare lage en egen komponent der vi henter data fra slicen og viser dem i de delene av applikasjonen der vi trenger det.

La oss åpne produktapplikasjonen vår. La oss nå i mappen products opprette en ny fil SellerOfProd.jsx. Til å begynne med, la oss importere hooken useSelector, som vi skal bruke for å hente slicen med det nødvendige produktet:

import { useSelector } from 'react-redux'

Deretter henter vi det nødvendige produktet fra store ved hjelp av selgerens id, som vi skal sende til vår nye komponent i props:

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

Og hvis en slik selger finnes, vil vi returnere navnet deres, og hvis ikke, returnerer vi 'unknown':

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

La oss nå importere vår nye komponent til ProductsList.jsx og sette den inn i funksjonen ProductsList rett etter overskriften med produktnavnet. Som du ser, sendte vi id-en til den i props:

<SellerOfProd sellerId={product.seller} />

Nå, hvis vi starter applikasjonen vår, legger til et nytt produkt og finner det i listen, vil vi se at det har fått en selger, og for produktene som ble lagt til automatisk ved oppstart av applikasjonen, vil det stå 'unknown'.

Et lite sidesprang: Hvis eslint i redigeringsprogrammet VS Code klager på sellerId, men applikasjonen fungerer, kan du ignorere det for nå, eller åpne filen .eslintrc.cjs i applikasjonen din og i rules legge til "react/prop-types": "off".

Det er selvsagt at vi også vil legge til informasjon om selgeren på produktsiden. For å gjøre dette, setter vi inn i koden til ProductPage etter overskriften med produktnavnet denne linjen igjen og sjekker at alt fungerer:

<SellerOfProd sellerId={product.seller} />

Åpne studentapplikasjonen din. Etter å ha studert leksjonsmaterialet, i mappen students, opprett en fil for komponenten TeacherForStudent. Resultatet skal være at komponenten returnerer lærerens fullt navn, og ved siden av i parentes faget som de underviser i. Finn den nødvendige læreren ved hjelp av hooken useSelector. Hvis læreren for denne studenten mangler, vis 'anonym'.

Ved hjelp av komponenten fra forrige oppgave, vis dataene til læreren for hver student på siden med studentlisten.

Gjør det samme som i forrige oppgave, men for den enkelte studentens side.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis