Získavanie údajov z store v komponente v Reduxe

V tejto lekcii zobrazíme údaje z store v React komponente.

Otvorme našu aplikáciu s produktami, prejdime do priečinka parts/products a vytvorme v ňom súbor ProductsList.jsx. Na začiatok importujme do neho hook useSelector, pomocou ktorého budeme získavať údaje z store:

parts/products/ProductsList.jsximport { useSelector } from 'react-redux'

Teraz získajme produkty z store. Funkciu-selektor nevytvoríme samostatne, jej kód napíšeme priamo do parametra pre useSelector:

parts/products/ProductsList.jsxexport const ProductsList = () => {
  const products = useSelector((state) => state.products)
}

Potom zobrazíme produkty štandardným spôsobom v tele funkcie ProductsList po riadku so získaním produktov, pomocou map:

parts/products/ProductsList.jsxconst dispProducts = products.map((product) => (
  <div key={product.id}>
    <h3>{product.name}</h3>
    <p>{product.desc.substring(0, 100)}</p>
    <p>Price: {product.price}</p>
    <p>Amount: {product.amount}</p>
  </div>
))

A nižšie zobrazíme dispProducts v nasledujúcom HTML:

parts/products/ProductsList.jsxreturn (
  <div>
    <h2>Products</h2>
    {dispProducts}
  </div>
)

Teraz už zostáva len zobraziť náš zoznam produktov na hlavnej stránke. Otvorme súbor root.jsx a opravme nadpis:

app/root.jsx<h2>This is my first Redux app!</h2>

Na nasledujúci:

app/root.jsx<h2>My Products App</h2>

Potom importujme do súboru komponent ProductsList:

app/root.jsximport { ProductsList } from '../parts/products/ProductsList'

A vložme ho do div s id main-page hneď po zatváracom tagu hr:

app/root.jsx<ProductsList />

Spustíme našu aplikáciu. Náš zoznam z dvoch produktov sa úspešne zobrazil na hlavnej stránke.

Задание 1

Otvorte vašu aplikáciu so študentmi. Vytvorte súbor StudentsList.jsx v priečinku students.

Задание 2

Získajte študentov z store pomocou hooku useSelector, ako je popísané v lekcii. Zobrazte všetky polia s informáciami o študentoch z stavu, pomocou map.

Задание 3

Importujte získaný komponent StudentsList do root.jsx a zobrazte ho na hlavnej stránke. Uistite sa, že všetky informácie o študentoch sa zobrazili na obrazovke.