⊗jsrxPmRDMDO 30 of 57 menu

Genbrug af data fra et slice i Redux

I den forrige lektion tilføjede vi til formularen for tilføjelse af et produkt endnu et felt med en dropdown-liste til valg af sælger, som lægger det ud. Lad os antage, at vi nu også skal vise denne information på flere steder i applikationen. For at gøre dette vil vi ikke hver gang duplikere koden, men blot oprette en separat komponent, hvor vi vil hente data fra slicet og vise dem i de dele af applikationen, hvor vi har brug for det.

Lad os åbne vores produktapplikation. Lad os nu i mappen products oprette endnu en fil SellerOfProd.jsx. Til at starte med importerer vi hook'et useSelector, som vi vil bruge til at hente slicet med det ønskede produkt:

import { useSelector } from 'react-redux'

Dernæst henter vi det ønskede produkt fra store via sælgerens id, som vi vil videregive vores nye komponent via props:

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

Og hvis en sådan sælger findes, vil vi returnere deres navn, og hvis ikke, returnerer vi 'unknown':

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

Lad os nu importere vores nye komponent til ProductsList.jsx og indsætte den i funktionen ProductsList lige efter overskriften med produktnavnet. Som du kan se, gav vi den id'et via props:

<SellerOfProd sellerId={product.seller} />

Hvis vi nu starter vores applikation, tilføjer et nyt produkt og finder det på listen, vil vi se, at det har fået en sælger, og for produkter, der automatisk blev tilføjet under applikationens start, vil der stå 'unknown'.

En lille sidebemærkning: Hvis din eslint i editoren VS Code klager over sellerId, men applikationen fungerer, kan du ignorere det for nu eller åbne filen .eslintrc.cjs i din applikation og tilføje "react/prop-types": "off" under rules.

Det er selvfølgelig givet, at vi også gerne vil tilføje information om sælgeren på produktsiden. For at gøre dette indsætter vi i layoutet for ProductPage efter overskriften med produktnavnet igen denne linje og checker, at alt fungerer:

<SellerOfProd sellerId={product.seller} />

Åbn din applikation med studerende. Efter at have studeret lektionens materiale, skal du i mappen students oprette en fil til komponenten TeacherForStudent. Resultatet skal være, at komponenten returnerer underviserens fulde navn, og ved siden af i parentes det fag, de underviser i. Find den rigtige underviser ved hjælp af hook'et useSelector. Hvis der ikke er nogen underviser for den givne studerende, skal du vise 'anonym'.

Ved hjælp af den opnåede komponent fra forrige opgave, skal du vise data for underviseren for hver studerende på siden med listen over studerende.

Gør det samme som i den forrige opgave, men for den enkelte studerendes side.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis