⊗jsrtPmRtDER 38 of 47 menu

Ustvarjanje poti za urejanje podatkov v React Router

V prejšnji lekciji smo ustvarili obrazec za urejanje v ločeni React komponenti EditProduct.

Zdaj pa napišimo funkcijo nalagalnika za novo pot takoj po uvozu in pred funkcijo EditProduct. Bila bo enaka kot v product.jsx. V funkcijo bodo predani URL parametri in nato bomo pridobili produkt po njegovem id:

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

Uvažajmo getProduct iz forStorage.js:

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

Zdaj bomo odprli naš main.jsx in uvažali komponento, ki smo jo ustvarili EditProduct in nalagalnik:

import EditProduct, { loader as editProductLoader } from './routes/edit';

Nato dodajmo v matriko children objekt poti za urejanje takoj za potjo za produkt:

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

Zdaj zaženimo aplikacijo, ustvarimo produkt, kliknimo nanj, nato pa na gumb za urejanje in videli bomo naš obrazec.

Edino, kar moramo še narediti, je, da so v poljih obrazca pred urejanjem naloženi trenutni podatki. Za to uvozimo v edit.jsx kavelj useLoaderData:

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

In ga uporabimo za pridobivanje podatkov iz nalagalnika v funkciji EditProduct. Dodajmo ga pred ukaz return:

const { product } = useLoaderData();

Zdaj dodajmo v vsak označevalnik vnosno polje atribut defaultValue z ustreznimi vrednostmi za vsako vnosno polje. Na primer, prvo vnosno polje bo zdaj videti takole:

<input placeholder="name" type="text" name="name" defaultValue={product.name} />

Za preostali dve vnosni polji bodo vrednosti ustrezno 'product.cost' in 'product.amount'. Resda za zdaj podatkov v obrazcu še nimamo.

Vzemite aplikacijo, ki ste jo ustvarili v nalogah za prejšnje lekcije. Z uporabo gradiva lekcije ustvarite funkcijo loader v edit.jsx za pot urejanja podatkov študenta.

Dodajte v matriko children objekt poti za urejanje.

Dodajte za vašo funkcijo EditStudent zahtevano kodo iz lekcije.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni