⊗jsrxPmRDPP 21 of 57 menu

Страница за продукт в Redux

В този урок ще направим отделна страница за извеждане на информация за конкретен продукт.

Нека отворим нашето приложение с продукти и в папката products създадем файл ProductPage.jsx. Както помните, всеки наш продукт има уникален id. Благодарение на този id ще можем да генерираме уникален URL адрес на страницата за всеки продукт. Традиционно той ще изглежда така: /products/id123. И id ще се съдържа в неговата динамична част (самият маршрут ще се заемем малко по-късно).

И така, нека в ProductPage.jsx създадем празен компонент ProductPage:

export const ProductPage = () => {}

Първото, което ще направим тук - ще използваме хука useParams, за да извлечем динамичната част от URL адреса за страницата на продукта, на която се намираме:

export const ProductPage = () => { let params = useParams() const { productId } = params }

След това по полученото id ще потърсим необходимия продукт в слайса products в store, използвайки вече познатия ни хук useSelector:

const product = useSelector((state) => state.products.find((product) => product.id === productId) )

Нека не забравяме да импортираме и двата хука във файла:

import { useSelector } from 'react-redux' import { useParams } from 'react-router-dom'

Ако необходимият ни продукт не бъде намерен (например, потребителят е въвел некоректен адрес), тогава ще изведем информация за това на екрана. На този етап кодът за компонента ProductPage трябва да изглежда така:

export const ProductPage = () => { let params = useParams() const { productId } = params const product = useSelector((state) => state.products.find((product) => product.id === productId) ) if (!product) { return <p>Няма такъв продукт</p> } }

И остава само да изведем получените данни за продукта в верстката:

return ( <div> <h2>{product.name}</h2> <p>Описание: {product.desc}</p> <p>Цена: {product.price}</p> <p>Количество:{product.amount}</p> </div> )

Отворете вашето приложение със студенти. В папката students създайте файл StudentPage.jsx, в който ще получавате и извеждате информация за избрания студент.

С помощта на react-redux хука useSelector получете необходимата информация за студента, както е показано в урока.

Изведете в компонента получената информация за студента на екрана.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне