⊗jsrxPmATSL 56 of 57 menu

Sælgerliste i Redux

På de foregående lektioner afsluttede vi det grundlæggende materiale. Nu henter vi med hjælp af thunk en liste over produkter fra serveren og kan gemme et nyt produkt på serveren. Lad os tage hul på sælgerne. Vi henter jo også data til dem. Lad os lave en separat side med en liste over sælgere.

Åbn vores produktapplikation, og i den mappen sellers. Opret i denne mappe filen SellersList.jsx. Her vil vi bruge useSelector, Link og selectAllSellers, hvis kode vi skriver i sellersSlice.js lidt senere:

import { useSelector } from 'react-redux' import { Link } from 'react-router-dom' import { selectAllSellers } from './sellersSlice'

Dernæst opretter vi selve SellersList. I den henter vi alle sælgere ved hjælp af hook'et useSelector, derefter får vi HTML-strukturen for listen af sælgere i et map-loop, hvor hvert sælgernavn vil føre til deres side. Og til sidst returnerer vi HTML-strukturen med en overskrift og den oprettede liste:

export const SellersList = () => { const sellers = useSelector(selectAllSellers) const sellersToRender = sellers.map((seller) => ( <li key={seller.id}> <Link to={`/sellers/${seller.id}`}>{seller.name}</Link> </li> )) return ( <div> <h2>Sælgere:</h2> <ul>{sellersToRender}</ul> </div> ) }

Dernæst går vi ind i filen sellersSlice.js og efter analogi med selektorerne i productsSlice.js opretter vi i slutningen af filen to selektorer efter eksporten af reduceren:

export const selectAllSellers = (state) => state.sellers export const selectSellerById = (state, sellerId) => state.sellers.find((seller) => seller.id === sellerId)

Nu er vi nødt til at tilføje ruten for siden med listen, for at gøre dette åbner vi filen App.jsx og tilføjer endnu et objekt til arrayet med underruter children (glem ikke at importere komponenten SellersList):

{ path: '/sellers', element: <SellersList />, },

For at vores link 'Sellers' i menuen skal virke, lad os gå ind i filen root.jsx (hvornår var det det sidst... ) og erstatte tagget a med elementet NavLink:

<NavLink to="/sellers" end> Sælgere </NavLink>

Og endelig. For at den aktive link i vores menu skal fremhæves, og det skal være forståeligt, hvilken side vi er på, tilføjer vi en stil i index.css:

nav a.active { color: purple; }

Lad os starte vores applikation. Nu kan vi gå til siden med sælgere ved at klikke på 'Sælgere' i menuen. Selvfølgelig skal vi først klikke på 'Produkter' i menuen, ellers bliver vores produkter ikke hentet. I næste lektion laver vi en side for hver sælger og afslutter dermed dette studieafsnit om Redux.

Åbn din applikation med studerende. Efter at have studeret materialet fra lektionen, i mappen teachers opret filen TeachersList.jsx. Ved hjælp af denne komponent vil du vise listen over undervisere. Importer de nødvendige komponenter og hooks i den.

Skriv koden for komponentet TeachersList, hent alle underviserne i den og lav en liste over undervisere teachersToRender, lad hver linje i denne liste vise deres efternavne og initialer, og i parentes det fag, som de underviser i. Lad hvert fulde navn være et link, der fører til en separat side for hver underviser. Derefter returneres til sidst i komponentkoden HTML-strukturen med en overskrift og den oprettede liste.

I slutningen af filen teachersSlice.js opret et par funktionsselektorer selectAllTeachers og selectTeacherById, som vist i lektionen.

I App.jsx tilslut endnu en underrute for siden med underviserne.

I filen root.jsx i menuen for 'Teachers' erstat tagget a med NavLink, som vist i lektionen. Sørg for, at det aktive link i menuen fremhæves på en eller anden måde, ved at tilføje stile for dette i index.css.

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