⊗jsrtPmRtGLDP 36 of 47 menu

Kupata Data za Loader Kulingana na Vigezo vya URL katika React Router

Katika somo lililopita tuliandika kitendo cha kupata data za ukurasa wa bidhaa, hebu tuimporte getProduct kwenye faili product.jsx:

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

Tuandike kitendo cha loader loader mara baada ya import na kabla ya kitendo Product. Tupitishe ndani yake vigezo vya URL :

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

Pia tuimporte kutumia useLoaderData kwa matumizi ya data, zilizopatikana kwa loader:

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

Tutumie useLoaderData, ipasavyo tukibadilisha mstari na uundaji wa kitu product mwanzoni mwa kitendo Product na ufuatao:

const { product } = useLoaderData();

Na, bila shaka, tubadilishe kidogo muundo wetu, kwa sababu tuliondoa kitu cha zamani product. Tubadilishe yaliyomo kwenye aya:

<p>Jina: {product.name}</p> <p>Gharama: {product.cost}</p> <p>Kiasi: {product.amount}</p>

Kwa yafuatayo:

<p>Jina: {product.name ? product.name : <i>haina jina</i>}</p> <p>Gharama: {product.cost ? product.cost : <i>haijulikani</i>}</p> <p>Kiasi: {product.amount ? product.amount : <i>haijulikani</i>}</p>

Imetubakia kufungua main.jsx na kuongeza humo import loader, tuiite productLoader:

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

Na kuandika kama loader kwa kitu cha njia za ukurasa na bidhaa, kuongeza kwenye children baada ya sifa element:

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

Yote, na upakiaji wa data kwa ukurasa wa bidhaa tumemaliza! Kweli, tunaweza kupakia bado hakuna chochote. Zindua programu, ongeza bidhaa na ubofye kwenye orodha, ili kuhakikisha kuwa yote inafanya kazi.

Chukua programu, iliyoundwa na wewe kwa kazi za masomo yaliyopita. Kwa kutumia nyenzo za somo, kutekeleza loader, kuunganisha, kutumia data kutoka humo kwa ukurasa na mwanafunzi.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa