Արտադրանքի էջը դիտարկիչում Redux-ում

Նախորդ դասին մենք ստեղծեցինք առանձին էջ արտադրանքի համար: Այժմ մեզ անհրաժեշտ է անել այնպես, որ որևէ կոճակ սեղմելիս մեր էջը հայտնվի դիտարկիչում:

Սկսելու համար եկեք կցենք դրա համար հասցե, որի վրա այն կցուցադրվի: Բացենք App.jsx ֆայլը, որում մենք նշում ենք երթուղիները, և ավելացնենք children-ում ևս մեկ երեխայի երթուղի (մի մոռացեք իմպորտել ProductPage.jsx): Նշենք ճանապարհը և կոմպոնենտը, որը կցուցադրենք:

App.jsx{
  path: '/products/:productId',
  element: <ProductPage />,
},

Այժմ եկեք բացենք ProductsList.jsx-ը products պանակում և մի փոքր փոխենք կոդը dispProducts-ի համար: Այժմ մենք ունենք առանձին էջ յուրաքանչյուր արտադրանքի մասին ամբողջական տեղեկատվությամբ: Սա նշանակում է, որ արտադրանքների ցանկում մենք կցուցադրենք միայն արտադրանքի անվանումը և նկարագրության կրճատ տեքստը: Մենք նաև կավելացնենք հղում նավիգացիայի տարրի տեսքով Link երթուղիչի գրադարանից, որի վրա սեղմելիս հնարավոր կլինի անցնել արտադրանքի էջ: Եկեք նաև ավելացնենք div-ին դաս product-excerpt, որպեսզի առանձնացնենք արտադրանքները: Այժմ մեր կոդը dispProducts-ի համար կլինի այսպիսին.

products/ProductsList.jsxconst dispProducts = products.map((product) => (
  <div key={product.id} className="product-excerpt">
    <h3>{product.name}</h3>
    <p>{product.desc.substring(0, 100)}</p>
    <Link to={`/products/${product.id}`} className="link-btn">
      view
    </Link>
  </div>
))

Եկեք իմպորտենք Link-ը:

products/ProductsList.jsximport { Link } from 'react-router-dom'

Եվ եկեք ավելացնենք ոճեր link-btn և product-excerpt դասերի համար index.css-ում:

index.css.product-excerpt {
  margin-top: 30px;
  border: 1px solid gray;
  border-radius: 5px;
  padding: 10px;
}

.link-btn {
  border: 1.5px solid gray;
  border-radius: 10px;
  background-color: coral;
  color: black;
  padding: 1px 12px 1px 12px;
}

Վերջում, եկեք նաև աշխատացնենք հղումը ձախ մենյույում, որն տանում է դեպի արտադրանքների ցանկի էջ, որպեսզի մենք կարողանանք անցնել դրան ցանկացած այլ տեղից: Դրա համար բացենք մեր root.jsx-ը և փոխարինենք կոդի այս տողը:

app/root.jsx<a>Products</a>

Հաջորդով.

app/root.jsx<NavLink to="/products" end>
  Products
</NavLink>

Մի մոռանանք նաև իմպորտել NavLink-ը React երթուղիչի գրադարանից.

app/root.jsximport { Outlet, NavLink } from 'react-router-dom'

Եկեք գործարկենք մեր հավելվածը: Այժմ մենք կարող ենք անցնել ցանկացած արտադրանքի մասին տեղեկատվության էջ, սեղմելով դիտելու կոճակը: Փորձեք հիմա ավելացնել նոր արտադրանք և դիտել դրա մասին տեղեկատվությունը առանձին էջում` սեղմելով դիտելու կոճակը: Նաև այժմ, արտադրանքների ցանկին վերադառնալու համար բավական է կտտացնել ձախ մենյույում գտնվող 'Products'-ին: Գտնվելով տարբեր էջերում, դիտեք, թե ինչպես է փոխվում URL-ը դիտարկիչի հասցեի տողում:

Задание 1

Բացեք ձեր ուսանողների հավելվածը: App.jsx ֆայլում ստեղծեք ևս մեկ երեխայի երթուղի ուսանողի էջիկի համար:

Задание 2

StudentsList.jsx ֆայլում կատարեք կոդի փոփոխություններ dispStudents-ի համար, ինչպես ցուցադրված է դասում:

Задание 3

Անեք այնպես, որ 'Students' հղումը ձախ մենյույում տանի դեպի ուսանողների ցանկի էջը: Ստուգեք, որ ամեն ինչ աշխատում է:

Задание 4

Տեսեք, թե ինչպես կփոխվի արժեքը դիտարկիչի հասցեի տողում, կախված նրանից, թե որ էջին եք դուք հիմա գտնվում: