⊗jsrtPmRtDER 38 of 47 menu

მონაცემთა რედაქტირების მარშრუტის შექმნა React Router-ში

წინა გაკვეთილზე ჩვენ შევქმენით ფორმა რედაქტირებისთვის ცალკე React კომპონენტში EditProduct.

ახლა კი დავწეროთ ჩამტვირთავი ფუნქცია ახალი მარშრუტისთვის, იმპორტების შემდეგ და ფუნქცია EditProduct-მდე. ის იგივე იქნება, რაც product.jsx-ში. ფუნქციას გადაეცემა URL პარამეტრები და შემდეგ ჩვენ მივიღებთ პროდუქტს მისი id-ის მიხედვით:

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

გავიმპორტოთ getProduct forStorage.js-დან:

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

ახლა კი გავხსნათ ჩვენი main.jsx და გავიმპორტოთ ჩვენს მიერ შექმნილი კომპონენტი EditProduct და ჩამტვირთავი:

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

შემდეგ დავამატოთ მასივში children მარშრუტის ობიექტი რედაქტირებისთვის, პროდუქტის მარშრუტის შემდეგ:

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

ახლა ჩავრთოთ აპლიკაცია, შევქმნათ პროდუქტი, დავაკლიკოთ მასზე, შემდეგ კი რედაქტირების ღილაკზე და ვნახოთ ჩვენი ფორმა.

ერთადერთი, რაც ჩვენ გვსაჭიროება, ეს ისაა, რომ ფორმის ველებში რედაქტირებამდე ჩატვირთული იყოს მიმდინარე მონაცემები. ამისთვის ჩვენ გავიმპორტოთ edit.jsx-ში ჰუკი useLoaderData:

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

და გამოვიყენოთ ის მონაცემების მისაღებად ჩამტვირთავიდან ფუნქციაში EditProduct. დავამატოთ ის ბრძანებამდე return:

const { product } = useLoaderData();

ახლა დავამატოთ თითოეულ ინფუთის ტეგს ატრიბუტი defaultValue შესაბამისი მნიშვნელობებით თითოეული ინფუთისთვის. მაგალითად, პირველი ინფუთი ახლა ასე გამოიყურება:

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

დანარჩენი ორი ინფუთის მნიშვნელობები იქნება შესაბამისად 'product.cost' და 'product.amount'. მაგრამ ჯერ-ჯერობით ფორმაში მონაცემები არ გვაქვს.

აიღეთ აპლიკაცია, რომელიც თქვენ შექმენით წინა გაკვეთილების დავალებებში. გაკვეთილის მასალის გამოყენებით, შექმენით ფუნქცია loader edit.jsx-ში სტუდენტის მონაცემთა რედაქტირების მარშრუტისთვის.

დაამატეთ მასივში children მარშრუტის ობიექტი რედაქტირებისთვის.

დაამატეთ თქვენი ფუნქციისთვის EditStudent გაკვეთილში მოთხოვნილი კოდი.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČ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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა