⊗jsrxPmATSL 56 of 57 menu

Spisak prodavaca u Redux-u

Na prethodnim časovima smo završili sa osnovnim materijalom. Sada uz pomoć thunk-a dobijamo spisak proizvoda sa servera i možemo sačuvati na serveru novi proizvod. Hajde da se pozabavimo prodavcima. Na kraju, mi dobijamo podatke i za njih. Hajde da napravimo posebnu stranicu sa spiskom prodavaca.

Otvorimo našu aplikaciju sa proizvodima, a u nej folder sellers. Kreirajmo u ovom folderu fajl SellersList.jsx. Ovde ćemo koristiti useSelector, Link i selectAllSellers, čiji kod ćemo napisati u sellersSlice.js malo kasnije:

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

Zatim kreirajmo sam SellersList. U njemu ćemo dobiti sve prodavce uz pomoć huka useSelector, zatim dobiti markup za spisak prodavaca u petlji map, pri čemu će svaki naziv prodavca nas voditi na njegovu stranicu. I na kraju vratiti markup sa naslovom i dobijenim spiskom:

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

Zatim otvorimo fajl sellersSlice.js i po analogiji sa selektorima u productsSlice.js kreirajmo na samom kraju fajla dva selektora nakon izvoza reducer-a:

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

Sada nam je neophodno da definišemo rutu za stranicu sa spiskom, za to otvorimo fajl App.jsx i u niz podređenih ruta children dodajmo još jedan objekat (ne zaboravite da importujete komponentu SellersList):

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

Kako bi naša veza 'Sellers' u meniju počela da radi, hajde da otvorimo fajl root.jsx (kako je to davno bilo... ) i zamenimo tag a elementom NavLink:

<NavLink to="/sellers" end> Sellers </NavLink>

I poslednje. Kako bi se u našem meniju istakla aktivna veza, i bilo jasno na kojoj se stranici nalazimo, pridodaćemo stil u index.css:

nav a.active { color: purple; }

Pokrenimo našu aplikaciju. Sada možemo da odemo na stranicu sa prodavcima, klikom na 'Sellers' u meniju. Naravno, pre toga treba da kliknemo na 'Products' u meniju, inače se naši proizvodi neće učitati. Na sledećem času ćemo napraviti stranicu za svakog prodavca i time završiti proučavanje ovog udžbenika po Redux-u.

Otvorite vašu aplikaciju sa studentima. Nakon proučavanja materijala časa, u folderu teachers kreirajte fajl TeachersList.jsx. Uz pomoć ove komponente ćete prikazivati spisak nastavnika. Importujte u nju neophodne komponente i hukove.

Napišite kod za komponentu TeachersList, dobijte u njoj sve nastavnike i napravite spisak nastavnika teachersToRender, neka u svakom redu ovog spiska budu prikazani njihovi prezimena i inicijali, a u zagradama predmet koji predaju. Neka svako ime i prezime zajedno budu veza koja vodi na posebnu stranicu za svakog nastavnika. Zatim na kraju koda komponente vratite markup sa naslovom i kreiranim spiskom.

Na kraju fajla teachersSlice.js kreirajte par funkcija-selektora selectAllTeachers i selectTeacherById, kao što je prikazano na času.

U App.jsx povežite još jednu podređenu rutu za stranicu sa nastavnicima.

U fajlu root.jsx u meniju za 'Teachers' zamenite tag a NavLink-om, kao što je prikazano na času. Učinite tako da se aktivna veza u meniju na neki način istakne, pridodajući za to stilove u index.css.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij