⊗jsrtPmRtDER 38 of 47 menu

Креирање руте за уређивање података у Реакт Роутер-у

На прошлом часу креирали смо форму за уређивање у одвојеном Реакт компоненту 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ščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј