⊗jsrxPmATSL 56 of 57 menu

Myyjien lista Reduxissa

Edellisillä tunneilla lopetimme pääasiallisen aineiston. Nyt thunkin avulla haemme tuotelistan palvelimelta ja voimme tallentaa uuden tuotteen palvelimelle. Selvitetään myyjät. Loppujen lopuksi saamme dataa myös heille. Tehdään erillinen sivu myyjien listalle.

Avataan tuotesovelluksemme, ja sen sisällä kansio sellers. Luodaan tähän kansioon tiedosto SellersList.jsx. Täällä aiomme käyttää useSelector, Link ja selectAllSellers, jonka koodin me kirjoitamme tiedostoon sellersSlice.js hieman myöhemmin:

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

Seuraavaksi luomme itse SellersList:n. Siinä me saamme kaikki myyjät hookin useSelector avulla, sitten saamme listauksen myyjien listalle silmukassa map, jossa jokaisen myyjän nimi on linkki hänen sivulleen. Ja lopuksi palautamme listauksen otsikon ja saadun listan:

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>Myyjät:</h2> <ul>{sellersToRender}</ul> </div> ) }

Seuraavaksi mennään tiedostoon sellersSlice.js ja vastaavasti kuin selektoreissa tiedostossa productsSlice.js luomme aivan tiedoston loppuun kaksi selektoria reducerin viennin jälkeen:

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

Nyt meidän on määritettävä reitti listasivulle, avaa tiedosto App.jsx ja lisää lasten reittien taulukkoon children vielä yhden objektin (älä unohda tuoda komponenttia SellersList):

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

Jotta linkkimme 'Myyjät' valikkoon toimisi, menkäämme tiedostoon root.jsx (miten kauan siitä on ... ) ja korvaa tagi a elementillä NavLink:

<NavLink to="/sellers" end> Myyjät </NavLink>

Ja viimeisenä. Jotta valikossamme korostuisi aktiivinen linkki, ja olisi selvällä millä sivulla olemme, lisäämme tyylin tiedostoon index.css:

nav a.active { color: purple; }

Käynnistetään sovelluksemme. Nyt voimme mennä myyjien sivulle napsauttamalla 'Myyjät' valikossa. Ennen tätä tietysti täytyy napsauttaa 'Tuotteet' valikossa, muuten tuotteemme eivät lataudu. Seuraavalla tunnilla teemme sivun jokaiselle myyjälle ja päätämme tämän Redux-opetusohjelman oppimisen.

Avaa opiskelijasovelluksesi. Opiskeltuasi tunnin materiaalin, luo kansioon teachers tiedosto TeachersList.jsx. Tämän komponentin avulla näytät listan opettajista. Tuo siihen tarvittavat komponentit ja hookit.

Kirjoita koodi komponentille TeachersList, hanki siihen kaikki opettajat ja tee opettajien lista teachersToRender, anna jokaiselle tämän listan riville näkyviin heidän sukunimensä ja nimikirjaimet, ja suluissa aine, jota he opettavat. Anna jokaisen nimen ja nimikirjainten yhdistelmän olla linkki, joka johtaa kunkin opettajan erilliselle sivulle. Sen jälkeen komponentin koodin lopussa palauta listaus otsikon ja luodun listan kanssa.

Tiedoston teachersSlice.js loppuun luo pari funktio-selektoria selectAllTeachers ja selectTeacherById, kuten oppitunnilla näytetään.

App.jsx:ssä liitä vielä yksi lapsireitti opettajien sivulle.

Tiedostossa root.jsx valikossa 'Opettajat' korvaa tagi a NavLink:llä, kuten oppitunnilla näytetään. Tee niin, että aktiivinen linkki valikossa korostuu jotenkin, lisäämällä tätä varten tyylejä tiedostoon index.css.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää