⊗jsrtPmRtDER 38 of 47 menu

React Router'da Veri Düzenleme için Rota Oluşturma

Önceki derste, ayrı bir React bileşeninde EditProduct düzenleme formu oluşturduk.

Şimdi, içe aktarmalardan hemen sonra ve EditProduct işlevinden önce yeni bir rota için yükleyici işlevi yazalım. Bu, product.jsx dosyasındakiyle aynı olacak. İşleve URL parametreleri iletilecek ve ardından ürünü id değerine göre alacağız:

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

getProduct fonksiyonunu forStorage.js dosyasından içe aktaralım:

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

Şimdi main.jsx dosyamızı açıp oluşturduğumuz EditProduct bileşenini ve yükleyiciyi içe aktaralım:

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

Ardından, children dizisine ürün rotasından hemen sonra düzenleme için bir rota nesnesi ekleyelim:

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

Şimdi uygulamayı başlatalım, bir ürün oluşturalım, üzerine tıklayalım ve ardından düzenleme butonuna tıklayarak formumuzu görelim.

Tek yapmamız gereken, form alanlarında düzenlemeden önce mevcut verilerin yüklenmiş olmasını sağlamak. Bunun için edit.jsx dosyasına useLoaderData kancasını içe aktaralım:

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

Ve EditProduct işlevinde yükleyiciden veri almak için kullanalım. return komutundan önce ekleyelim:

const { product } = useLoaderData();

Şimdi her input etiketine, her input için karşılık gelen değerlere sahip defaultValue niteliğini ekleyelim. Örneğin, ilk input artık şöyle görünecek:

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

Kalan iki input için değerler sırasıyla 'product.cost' ve 'product.amount' olacak. Ancak şu anda formda verilerimiz yok.

Önceki derslerdeki görevlerde oluşturduğunuz uygulamayı alın. Ders materyallerinden yararlanarak, öğrenci verilerini düzenleme rotası için edit.jsx dosyasında loader işlevini oluşturun.

children dizisine düzenleme için bir rota nesnesi ekleyin.

EditStudent işleviniz için derste istenen kodu ekleyin.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet