⊗jsrtPmRtDER 38 of 47 menu

Andmete redigeerimise marsruudi loomine React Routeris

Eelmises tunnis loome vormi redigeerimiseks eraldi React komponendis EditProduct.

Kirjutame nüüd laadimisfunktsiooni uue marsruudi jaoks kohe pärast importi ja enne funktsiooni EditProduct. See on sama, mis product.jsx failis. Funktsioonile edastatakse URL-i parameetrid ja seejärel saame toote selle id järgi:

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

Impordime getProduct forStorage.js failist:

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

Nüüd avame oma main.jsx faili ja impordime loodud komponendi EditProduct ja laadimisfunktsiooni:

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

Seejärel lisame massiivi children marsruudi objekti redigeerimiseks kohe pärast toote marsruuti:

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

Nüüd käivitame rakenduse, loome toote, klõpsame sellel ja seejärel redigeerimisnupul ja näeme oma vormikut.

Ainus, mida peame veel tegema, on veenduda, et vormi väljadele oleksid redigeerimise eel laaditud praegused andmed. Selleks impordime edit.jsx faili hook'i useLoaderData:

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

Ja rakendame seda andmete saamiseks laadurist funktsioonis EditProduct. Lisame selle enne return käsku:

const { product } = useLoaderData();

Nüüd lisame igale sisend-võtmele atribuudi defaultValue vastavate väärtustega iga sisendi jaoks. Näiteks esimene sisend näeb nüüd välja selline:

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

Kahe ülejäänud sisendi väärtused on vastavalt 'product.cost' ja 'product.amount'. Kuid praegu meil vormis andmeid veel pole.

Võtke rakendus, mille lõite eelmiste tundide ülesannetes. Kasutades tunni materjale, looge funktsioon loader edit.jsx failis õpilase andmete redigeerimise marsruudi jaoks.

Lisage massiivi children objekti marsruut redigeerimiseks.

Lisage oma funktsioonile EditStudent tunnis nõutud kood.

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