⊗jsrtPmRtDER 38 of 47 menu

Kreiranje rute za uređivanje podataka u React Router

Na prošloj lekciji kreirali smo formu za uređivanje u zasebnom React komponentu EditProduct.

Hajde sada da napišemo funkciju loadera za novu rutu odmah posle importa i pre funkcije EditProduct. Ona će biti ista kao u product.jsx. U funkciju će biti prosleđeni URL parametri i zatim ćemo dobijati proizvod po njegovom id:

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

Importujemo getProduct iz forStorage.js:

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

A sada ćemo otvoriti naš main.jsx i importovati kreiranu komponentu EditProduct i loader:

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

Zatim dodajmo u niz children objekat rute za uređivanje odmah posle rute za proizvod:

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

Sada pokrenimo aplikaciju, kreirajmo proizvod, kliknimo na njega, a zatim na dugme za uređivanje i videćemo našu formicu.

Jedino, još treba da uradimo tako da u poljima forme pre uređivanja budu učitani trenutni podaci. Za ovo importujemo u edit.jsx hook useLoaderData:

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

I primenimo ga za dobijanje podataka iz loadera u funkciji EditProduct. Dodajmo ga pre komande return:

const { product } = useLoaderData();

Sada dodajmo u svaki tag input atribut defaultValue sa odgovarajućim vrednostima za svaki input. Na primer, prvi input sada će izgledati ovako:

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

Za dva preostala inputa vrednosti će biti redom 'product.cost' i 'product.amount'. Istina za sada podataka u formi mi nemamo.

Uzmite aplikaciju koju ste kreirali u zadacima za prethodne lekcije. Koristeći se materijalima lekcije, kreirajte funkciju loader u edit.jsx za rutu uređivanja podataka studenta.

Dodajte u niz children objekat rute za uređivanje.

Dodajte za vašu funkciju EditStudent traženi u lekciji kod.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij