Obținerea datelor din store în componentă în Redux

În această lecție vom afișa datele din store într-o componentă React.

Deschidem aplicația noastră cu produse, intrăm în folderul parts/products și creăm în el fișierul ProductsList.jsx. Pentru început importăm în el hook-ul useSelector, cu ajutorul căruia vom obține date din store:

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

Acum să obținem produsele din store. Funcția-selector nu o vom crea separat, îi vom scrie codul direct în parametrul pentru useSelector:

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

Apoi vom afișa produsele în mod standard în corpul funcției ProductsList după linia cu obținerea produselor, folosind 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>
))

Și mai jos vom afișa dispProducts în următorul markup:

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

Acum rămâne să afișăm lista noastră de produse pe pagina principală. Deschidem fișierul root.jsx și corectăm titlul:

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

În următorul:

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

Apoi importăm în fișier componenta ProductsList:

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

Și o inserăm în div-ul cu id-ul main-page imediat după tag-ul de închidere hr:

app/root.jsx<ProductsList />

Pornim aplicația noastră. Lista noastră din două produse a fost afișată cu succes pe pagina principală.

Задание 1

Deschideți aplicația voastră cu studenți. Creați fișierul StudentsList.jsx în folderul students.

Задание 2

Obțineți studenții din store cu ajutorul hook-ului useSelector, așa cum este descris în lecție. Afișați toate câmpurile cu informații despre studenți din state, folosind map.

Задание 3

Importați componenta obținută StudentsList în root.jsx și afișați-o pe pagina principală. Asigurați-vă că toate informațiile despre studenți sunt afișate pe ecran.