⊗jsrtPmRtGLDP 36 of 47 menu

React Router да URL параметрлар орқали юклагич маълумотларини олиш

Ўтган дарсда биз маҳсулот саҳифаси учун маълумот олиш функциясини ёзган эдик, келтириб чиқариш қиламиз getProduct файлдан product.jsx:

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

Келтириб чиқаришдан кейин ва функциядан олдин Product юклагич функциясини ёзамиз loader Унга URL параметрларини ўтказамиз:

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

Шунингдек, келтириб чиқариш қиламиз ҳук useLoaderData учун юклагич томонидан олинган маълумотлардан фойдаланиш:

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

Қўллаймиз useLoaderData, мос равишда объект яратиш сатрини алмаштирамиз product функциянинг бошланишида Product бу нarsaga:

const { product } = useLoaderData();

Ва, албатта, бир оз ўзгартирамиз бизнинг верстканимиз, чунки биз эски объектни olib tashladik product. Абзацларнинг мазмунини алмаштирамиз:

<p>Name: {product.name}</p> <p>Cost: {product.cost}</p> <p>Amount: {product.amount}</p>

Бу нarsaga:

<p>Name: {product.name ? product.name : <i>unnamed</i>}</p> <p>Cost: {product.cost ? product.cost : <i>unknown</i>}</p> <p>Amount: {product.amount ? product.amount : <i>unknown</i>}</p>

Бизга очиш қолди main.jsx ва унга келтириб чиқариш қўшиш loader, уни номлаймиз productLoader:

import Product, { loader as productLoader, } from './routes/product';

Ва уни ёзамиз юклагич сифатида маҳсулот саҳифаси учун маршрут объектининг қўшиш уни children ичига хоссадан кейин element:

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

Ҳаммаси, маҳсулот саҳифаси учун маълумотларни юклаш билан ишнимиз тугалди! Лекин, юзлаш учун ҳали ҳеч нарса йўқ. Иловани ишга туширинг, маҳсулотлар қўшинг ва уларни рўйхатда босиб, ҳаммаси ишлашига ишонч ҳосил қилинг.

Ўзингизнинг олдинги дарслар учун яратган иловангизни олинг. Дарс материалларидан фойдаланиб, амилга опиринг loader, улантиринг, ундан талаба саҳифаси учун маълумотлардан фойдаланинг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш