⊗jsrxPmRDMDO 30 of 57 menu

Višestruko korišćenje podataka iz slice-a u Redux-u

Na prošlom času smo formi za dodavanje proizvoda dodali još jedno polje sa padajućim menijem za izbor prodavca koji ga postavlja. Pretpostavimo, sada nam je takođe potrebno da prikažemo ovu informaciju još na nekoliko mesta u aplikaciji. Za ovo nećemo svaki put duplirati kod, već ćemo jednostavno kreirati posebnu komponentu, u kojoj ćemo izvlačiti podatke iz slice-a i prikazivati ih u onim delovima aplikacije gde nam je potrebno.

Otvorimo našu aplikaciju sa proizvodima. Hajde sada u folderu products kreirati još jedan fajl SellerOfProd.jsx. Za početak importujemo hook useSelector, pomoću koga ćemo dobiti slice sa potrebnim proizvodom:

import { useSelector } from 'react-redux'

Zatim ćemo iz store-a izvući potrebni proizvod po id-u prodavca, koji ćemo proslediti našoj novoj komponenti u props-ima:

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

I u slučaju da takav prodavac postoji, vratićemo njegov naziv, a ako ne, vratićemo 'unknown':

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

Hajde sada da importujemo našu novu komponentu u ProductsList.jsx i ubacimo je u funkciji ProductsList odmah posle naslova sa nazivom proizvoda. Kao što vidite, prosledili smo mu u props-ima id:

<SellerOfProd sellerId={product.seller} />

Sada, ako pokrenemo našu aplikaciju, dodamo novi proizvod i nađemo ga u listi, videćemo da je kod njega pojavio prodavac, a kod proizvoda, automatski dodatih prilikom pokretanja aplikacije, biće 'unknown'.

Mali napomena: ako vaš eslint u editoru VS Code prijavljuje grešku na sellerId, a aplikacija radi, onda možete za sada to zanemariti ili otvoriti fajl .eslintrc.cjs vaše aplikacije i u rules dodati "react/prop-types": "off".

Podrazumeva se da bismo želeli dodati informaciju o prodavcu i na stranici proizvoda. Za ovo ubacimo u renderovanju ProductPage posle naslova sa nazivom proizvoda opet ovu liniju i proverimo da li sve radi:

<SellerOfProd sellerId={product.seller} />

Otvorite vašu aplikaciju sa studentima. Nakon što ste proučili materijal lekcije, u folderu students kreirajte fajl za komponentu TeacherForStudent. Kao rezultat, komponenta treba da vrati puno ime i prezime predavača, a pored u zagradama predmet koji on predaje. Potrebnog predavača nađite pomoću hook-a useSelector. Ako predavač za datog studenta ne postoji, prikažite 'anonym'.

Pomoću dobijene komponente iz prethodnog zadatka prikažite podatke predavača za svakog studenta na stranici sa listom studenata.

Uradite isto što i u prethodnom zadatku, ali za posebnu stranicu studenta.

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