⊗jsrxPmRDPP 21 of 57 menu

პროდუქტის გვერდი Redux-ში

ამ გაკვეთილზე ჩვენ შევქმნით ცალკე გვერდს კონკრეტული პროდუქტის ინფორმაციის საჩვენებლად.

გავხსნათ ჩვენი პროდუქტების აპლიკაცია და ფოლდერში products შევქმნათ ფაილი ProductPage.jsx. როგორც გახსოვთ, ჩვენს თითოეულ პროდუქტს აქვს უნიკალური id. ამ id-ის წყალობით ჩვენ შევძლებთ შევქმნათ უნიკალური URL მისამართი თითოეული პროდუქტისთვის. ტრადიციულად ის ასე გამოიყურება: /products/id123. და id იქნება მის დინამიკურ ნაწილში (თავად მარშრუტით ჩვენ ცოტა მოგვიანებით დავიკავებით).

მაშ, მოდით ProductPage.jsx-ში შევქმნათ ცარიელი კომპონენტი ProductPage:

export const ProductPage = () => {}

პირველი, რასაც ჩვენ აქ გავაკეთებთ - გამოვიყენებთ ჰუკს useParams, რათა გამოვყოთ დინამიკური ნაწილი URL მისამართიდან იმ პროდუქტის გვერდისთვის, რომელზეც ვიმყოფებით:

export const ProductPage = () => { let params = useParams() const { productId } = params }

შემდეგ მიღებული id-ის მიხედვით ჩვენ ვეძებთ საჭირო პროდუქტს სლაისში products store-ში, ჩვენთვის უკვე ნაცნობი ჰუკის useSelector გამოყენებით:

const product = useSelector((state) => state.products.find((product) => product.id === productId) )

არ დაგვავიწყდეს ორივე ჰუკის იმპორტირება ფაილში:

import { useSelector } from 'react-redux' import { useParams } from 'react-router-dom'

თუ კი ჩვენთვის საჭირო პროდუქტი არ მოიძებნა (მაგალითად, მომხმარებელმა შეიყვანა არასწორი მისამართი), მაშინ ჩვენ ამის შესახებ ინფორმაციას ეკრანზე გამოვიტანთ. ამ ეტაპზე კომპონენტისთვის ProductPage კოდი ასე უნდა გამოიყურებოდეს:

export const ProductPage = () => { let params = useParams() const { productId } = params const product = useSelector((state) => state.products.find((product) => product.id === productId) ) if (!product) { return <p>ასეთი პროდუქტი არ არსებობს</p> } }

და ჩვენ მხოლოდ რჩება მიღებული მონაცემების პროდუქტის ვერსტკაში გამოტანა:

return ( <div> <h2>{product.name}</h2> <p>აღწერა: {product.desc}</p> <p>ფასი: {product.price}</p> <p>რაოდენობა:{product.amount}</p> </div> )

გახსენით თქვენი აპლიკაცია სტუდენტებით. ფოლდერში students შექმენით ფაილი StudentPage.jsx, რომელშიც თქვენ მიიღებთ და გამოიტანთ ინფორმაციას არჩეული სტუდენტის შესახებ.

react-redux-ის ჰუკის useSelector დახმარებით მიიღეთ საჭირო ინფორმაცია სტუდენტის შესახებ, როგორც ეს ნაჩვენები იყო გაკვეთილზე.

კომპონენტში გამოიტანეთ ეკრანზე მიღებული ინფორმაცია სტუდენტის შესახებ.

bncsenhusw