⊗jsrtPmRtGLDP 36 of 47 menu

Adatok betöltése URL paraméterek alapján a React Router loader segítségével

Az előző leckében írtunk egy függvényt a termékoldal adatainak lekéréséhez, importáljuk a getProduct függvényt a product.jsx fájlba:

import { getProduct } from '../forStorage';

Írjuk meg a loader függvényt az import után, de a Product függvény előtt. Adjuk át neki az URL paramétereket:

export async function loader({ params }) { const product = await getProduct(params.productId); return { product }; }

Importáljuk a useLoaderData hookot is a loader által visszaadott adatok használatához:

import { useLoaderData } from 'react-router-dom';

Alkalmazzuk a useLoaderData hookot, ennek megfelelően lecserélve a product objektum létrehozását a Product függvény elején a következőre:

const { product } = useLoaderData();

És természetesen kicsit módosítanunk kell a markup-ot, mivel eltávolítottuk a régi product objektumot. Cseréljük le a bekezdések tartalmát:

<p>Név: {product.name}</p> <p>Ár: {product.cost}</p> <p>Mennyiség: {product.amount}</p>

A következőre:

<p>Név: {product.name ? product.name : <i>névtelen</i>}</p> <p>Ár: {product.cost ? product.cost : <i>ismeretlen</i>}</p> <p>Mennyiség: {product.amount ? product.amount : <i>ismeretlen</i>}</p>

Már csak a main.jsx megnyitása van hátra és a loader importálása, nevezzük el productLoader-nek:

import Product, { loader as productLoader, } from './routes/product';

És be kell állítanunk loader-ként a termékoldal útválasztói objektumában, hozzáadva a children-hez a element property után:

children: [ { path: 'products/:productId', element: <Product />, loader: productLoader, }, ],

Ennyi, a termékoldal adatainak betöltését sikerült megoldanunk! Igaz, jelenleg nincs mit betöltenünk. Indítsd el az alkalmazást, adj hozzá termékeket és kattintsgass rajtuk a listában, hogy megbizonyosodj minden működik.

Vedd azt az alkalmazást, amit az előző leckékhez tartozó feladatokban készítettél. A lecke anyagát felhasználva valósítsd meg a loader függvényt, kapcsold be, és használd fel az általa szolgáltatott adatokat a diák adatlapján.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás