⊗jsrtPmRtGLDP 36 of 47 menu

დატას მიმღების მიღება URL პარამეტრებიდან React Router-ში

წინა გაკვეთილზე nos დავწერეთ ფუნქცია პროდუქტის გვერდის მონაცემების მისაღებად, მოდით გავიტანოთ getProduct ფაილში product.jsx:

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

დავწეროთ მიმღების ფუნქცია loader იმპორტის შემდეგ და ფუნქციის Product წინ. გადავცეთ მას URL პარამეტრები:

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

ასევე გავიტანოთ ჰუკი useLoaderData მიმღების მიერ მიღებული მონაცემების გამოსაყენებლად:

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

გამოვიყენოთ useLoaderData, შესაბამისად ჩავანაცვლოთ სტრიქონი ობიექტის product შექმნით ფუნქციის Product დასაწყისში შემდეგით:

const { product } = useLoaderData();

და, რა თქმა უნდა, ცოტა შევცვალოთ ჩვენი ვერსტკა, რადგან nos წავუშალეთ ძველი ობიექტი product. შევცვალოთ აბზაცების შინაარსი:

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

შემდეგით:

<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>

nos დაგვრჩა გავხსნათ 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çeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა