⊗jsrtPmRtGLDP 36 of 47 menu

Добивање на податоци од loader преку URL параметри во React Router

Во претходната лекција напишавме функција за добивање на податоци за страницата на производот, ајде да ја импортираме getProduct во датотеката product.jsx:

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

Да напишеме loader функција loader веднаш по импортот и пред функцијата Product. Да ги пренесеме URL параметрите во неа:

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

Исто така, да го импортираме hook-от useLoaderData за користење на податоците добиени од loader-от:

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

Да го примениме useLoaderData, соодветно заменувајќи ја линијата со креирање на објектот product на почетокот на функцијата Product со следнава:

const { product } = useLoaderData();

И, се разбира, да ја смениме малку нашата разработка, бидејќи го отстранивме стариот објект product. Да ги замениме содржините на параграфите:

<p>Име: {product.name}</p> <p>Цена: {product.cost}</p> <p>Количина: {product.amount}</p>

Со следново:

<p>Име: {product.name ? product.name : <i>без име</i>}</p> <p>Цена: {product.cost ? product.cost : <i>непозната</i>}</p> <p>Количина: {product.amount ? product.amount : <i>непозната</i>}</p>

Останува да ја отвориме main.jsx и да го додадеме импортот на loader, да го наречеме productLoader:

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

И да го пропишеме како loader за објектот на рутата на страницата со производот, додавајќи го во children после својството element:

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

Сè, со вчитувањето на податоци за страницата на производот се справивме! Сепак, немаме што да вчитаме. Стартувајте ја апликацијата, додадете производи и кликнете на нив во листата за да се уверите дека сè работи.

Земете ја апликацијата што ја креиравте во задачите од претходните лекции. Користејќи ги материјалите од лекцијата, имплементирајте loader, поврзете го, искористете ги податоците од него за страницата со студентот.

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