⊗jsrtPmRtGLDP 36 of 47 menu

Andmete hankimine laadija kaudu URL-i parameetrite abil React Routeris

Eelmises õppetükis kirjutasime funktsiooni toodete lehe andmete hankimiseks, importime getProduct failis product.jsx:

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

Kirjutame laadija funktsiooni loader kohe pärast importi ja enne funktsiooni Product. Edastame sellele URL-i parameetrid:

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

Samuti importime hook'i useLoaderData laadijast saadud andmete kasutamiseks:

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

Rakendame useLoaderData, asendades vastavalt objekti product loomise rea funktsiooni Product alguses järgmisega:

const { product } = useLoaderData();

Ja muidugi muudame veidi meie välimust, kuna eemaldasime vana objekti product. Asendame lõikude sisu:

<p>Nimi: {product.name}</p> <p>Hind: {product.cost}</p> <p>Kogus: {product.amount}</p>

Järgmisega:

<p>Nimi: {product.name ? product.name : <i>nimetu</i>}</p> <p>Hind: {product.cost ? product.cost : <i>teadmata</i>}</p> <p>Kogus: {product.amount ? product.amount : <i>teadmata</i>}</p>

Meil jääb üle avada main.jsx ja lisada sinna import loader, nimetame selle productLoader:

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

Ja määrata see laadijaks toodete lehe marsruudi objekti jaoks, lisades selle children omaduse element järele:

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

Kõik, andmete laadimisega toodete lehele saime hakkama! Kuid, meil pole praegu midagi laadida. Käivitage rakendus, lisage tooteid ja klõpsake neile nimekirjas, et veenduda, et kõik töötab.

Võtke rakendus, mille lõite ülesannetes eelmistele õppetundidele. Kasutades õppetunni materjale, rakendage loader, ühendage see, kasutage sealt saadud andmeid üliõpilase lehel.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu