⊗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' болот. Бирок, азырынча формабызда маалыматтар жок.

Өткөн сабактардын тапшырмаларында түзгөн колдонмонузду алыңыз. Сабактын материалын колдонуп, студенттин маалыматтарын оңдоо үчүн edit.jsx файлында маршрут үчүн loader функциясын түзүңүз.

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
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу