⊗jsrtPmRtGLDP 36 of 47 menu

Lataustietojen hakeminen URL-parametreilla React Routerissa

Edellisellä oppitunnilla kirjoitimme funktion tuotesivun tietojen hakemiseksi, tuodaan getProduct tiedostoon product.jsx:

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

Kirjoitetaan lataajafunktio loader välittömästi tuonnin jälkeen ja ennen funktiota Product. Annetaan sille URL parametrit:

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

Tuo myös hook useLoaderData lataajasta saatavien tietojen käyttämiseksi:

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

Sovelletaan useLoaderData, ja vastaavasti korvataan rivi, joka luo objektin product funktion Product alussa, seuraavalla:

const { product } = useLoaderData();

Ja tietysti muutetaan hieman HTML-rakenne, koska poistimme vanhan objektin product. Korvataan kappaleiden sisältö:

<p>Nimi: {product.name}</p> <p>Hinta: {product.cost}</p> <p>Määrä: {product.amount}</p>

Seuraavalla:

<p>Nimi: {product.name ? product.name : <i>nimetön</i>}</p> <p>Hinta: {product.cost ? product.cost : <i>tuntematon</i>}</p> <p>Määrä: {product.amount ? product.amount : <i>tuntematon</i>}</p>

Meidän on vielä avattava main.jsx ja lisättävä sinne loader:n tuonti, kutsutaan sitä productLoader:ksi:

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

Ja määritettävä se lataajaksi tuotteen sivun reittioliolle, lisäämällä sen children:iin ominaisuuden element jälkeen:

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

Valmista, tuotesivun tietojen lataamisen kanssa olemme selvittäneet! Tosiaan, meillä ei ole vielä mitään ladattavaa. Käynnistä sovellus, lisää tuotteita ja napsauttele niitä listassa varmistaaksesi, että kaikki toimii.

Ota edellisten oppituntien tehtävissä luomasi sovellus. Hyödynnä oppitunnin materiaaleja ja toteuta loader, kytke se, ja hyödynnä siitä saatavia tietoja opiskelijan sivulla.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää