Получение данных из store в компоненте в Redux

На этом занятии мы выведем данные из store в React компоненте.

Откроем наше приложение с продуктами, зайдем в папку parts/products и создадим в ней файл ProductsList.jsx. Для начала импортируем в него хук useSelector, с помощью которого будем получать данные из store:

import { useSelector } from 'react-redux'

Теперь давайте получим продукты из store. Функцию-селектор мы не будем создавать отдельно, пропишем ее код сразу в параметре для useSelector:

export const ProductsList = () => { const products = useSelector((state) => state.products) }

Затем мы выведем продукты стандартным способом в теле функции ProductsList после строчки с получением продуктов, используя map:

const 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> ))

А ниже выведем dispProducts в следующей верстке:

return ( <div> <h2>Products</h2> {dispProducts} </div> )

Теперь осталось отобразить наш список продуктов на главной страничке. Откроем файл root.jsx и исправим заголовок:

<h2>This is my first Redux app!</h2>

На следующий:

<h2>My Products App</h2>

Затем импортируем в файл компонент ProductsList:

import { ProductsList } from '../parts/products/ProductsList'

И вставим его в див с айди main-page сразу после закрывающего тега hr:

<ProductsList />

Запускаем наше приложение. Наш список из двух продуктов успешно вывелся на главной страничке.

Откройте ваше приложение со студентами. Создайте файл StudentsList.jsx в папке students.

Получите студентов из store с помощью хука useSelector, как описано в уроке. Отобразите все поля с информацией о студентах из стейта, воспользовавшись map.

Импортируйте полученный компонент StudentsList в root.jsx и выведите его на главной страничке. Убедитесь, что вся информация о студентах отобразилась на экране.



Чат с GPT Компилятор