⊗jsrtPmRtDER 38 of 47 menu

Adatszerkesztési útvonal létrehozása a React Routerben

Az előző leckében létrehoztunk egy szerkesztő űrlapot különálló React komponensben EditProduct.

Most írjunk egy loader függvényt az új útvonalhoz az importok után és a EditProduct függvény előtt. Ez ugyanolyan lesz, mint a product.jsx fájlban. A függvénynek átadódnak az URL paraméterek, majd a terméket lekérjük annak id-ja alapján:

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

Importáljuk a getProduct függvényt a forStorage.js fájlból:

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

Most megnyitjuk a main.jsx fájlt és importáljuk a létrehozott komponenst EditProduct és a loader függvényt:

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

Ezután adjuk hozzá a children tömbhöz a szerkesztési útvonal objektumát közvetlenül a termék útvonala után:

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

Most indítsuk el az alkalmazást, hozzunk létre egy terméket, kattintsunk rá, majd a szerkesztés gombra és meglátjuk a űrlapunkat.

Egyetlen dolog, amit még meg kell tennünk, hogy az űrlap mezőiben a szerkesztés előtt betöltődjenek a jelenlegi adatok. Ehhez importáljuk a edit.jsx fájlba a useLoaderData hook-ot:

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

És alkalmazzuk a loader adatainak lekérésére a EditProduct függvényben. Helyezzük el a return parancs elé:

const { product } = useLoaderData();

Most adjunk hozzá minden input elemhez egy defaultValue attribútumot a megfelelő értékekkel minden egyes inputhoz. Például, az első input így fog kinézni:

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

A maradék két input értéke rendre 'product.cost' és 'product.amount' lesz. Igaz, egyelőre még nincsenek adataink az űrlapban.

Vegyétek azt az alkalmazást, amit az előző leckékhez tartozó feladatokban készítettetek. A lecke anyagát használva, hozzatok létre egy loader függvényt a edit.jsx fájlban a diák adatainak szerkesztésére szolgáló útvonalhoz.

Adjátok hozzá a children tömbhöz a szerkesztési útvonal objektumát.

Adjuk hozzá a EditStudent függvényhez a leckében kért kódot.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás