⊗jsrtPmRtULD 31 of 47 menu

Използване на данни, получени от зареждащия в React Router

В предишния урок получихме данни от хранилището с помощта на loader. За да използваме тези данни, ще използваме хука useLoaderData. Нека отворим файла root.jsx и добавим хука в импорта:

import { Outlet, Link, useLoaderData } from 'react-router-dom';

Във функцията Root сега ще получаваме данните в константата products и ще работим с нея. Ако имаме някакви продукти, списъкът ще се покаже, ако не, ще изведем в абзаца 'no products here ...'. В тага nav сега използваме стандартен цикъл за извеждане на получените продукти. Всеки елемент ще бъде обвит в компонента Link и адресът ще бъде различен за всеки (за това ще говорим по-късно). Съответно, ако даден продукт няма име, ще се изведе 'Unnamed' по подразбиране. И така, като вземем предвид горното, сега нашият код за функцията Root ще изглежда така:

function Root() { const { products } = useLoaderData(); return ( <div id="main"> {products.length ? ( <nav> {products.map((product) => ( <Link key={product.id} to={`products/${product.id}`}> {product.name ? product.name : <i>Unnamed</i>} </Link> ))} </nav> ) : ( <p><i>no products here ...</i></p> )} <div id="product"> <Outlet /> </div> </div> ); }

Ако сега рестартираме приложението и отидем на главната страница, ще видим само 'no products here ...', тъй като все още не сме добавили никакви продукти в хранилището.

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

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне