⊗jsrtPmRtDER 38 of 47 menu

Məlumatların redaktəsi üçün marşrutun yaradılması React Router-də

Keçən dərsdə biz ayrı bir React komponentində EditProduct redaktə forması yaratdıq.

İndi isə importlardan dərhal sonra və EditProduct funksiyasından əvvəl yeni marşrut üçün yükləyici funksiya yazaq. O, product.jsx-də olduğu kimi olacaq. Funksiyaya URL parametrləri ötürüləcək və sonra məhsulu onun id ilə əldə edəcəyik:

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

getProduct-i forStorage.js-dən import edək:

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

İndi isə biz main.jsx faylımızı açıb yaratdığımız EditProduct komponentini və yükləyicini import edəcəyik:

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

Sonra isə children massivinə məhsul marşrutundan dərhal sonra redaktə üçün marşrut obyekti əlavə edəcəyik:

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

İndi proqramı işə salaq, məhsul yaradaq, onun üzərinə klik edək, sonra isə redaktə düyməsinə klik edib formamızı görək.

Tək lazımlı şey, formanın xanalarında redaktədən əvvəl cari məlumatların yüklənməsidir. Bunun üçün biz edit.jsx faylına useLoaderData hookunu import edəcəyik:

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

Və onu EditProduct funksiyasında yükləyicidən məlumat əldə etmək üçün tətbiq edək. return əmrindən əvvəl onu əlavə edək:

const { product } = useLoaderData();

İndi isə hər bir input teqinə uyğun qiymətlərlə defaultValue atributu əlavə edək. Məsələn, birinci input artıq belə görünəcək:

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

Qalan iki input üçün qiymətlər müvafiq olaraq 'product.cost''product.amount' olacaq. Lakin hələlik formada məlumatlarımız yoxdur.

Əvvəlki dərslərin tapşırıqlarında yaratdığınız proqramı götürün. Dərsin materiallarından istifadə edərək, tələbə məlumatlarının redaktəsi marşrutu üçün edit.jsx faylında loader funksiyası yaradın.

children massivinə redaktə marşrutu üçün obyekt əlavə edin.

EditStudent funksiyanız üçün dərsdə tələb olunan kodu əlavə edin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et