⊗jsrtPmRtAL 42 of 47 menu

React Router'da faol havolani ajratish

Faraz qilaylik, biz bir nechta mahsulotlarni ilovamizga qo'shdik va har birini ko'rib chiqayapmiz. Hozir qaysi mahsulot sahifasida turganimizni qanday bilamiz? Keling, ushbu mahsulotni ro'yxatda ajratib ko'rsataylik, masalan qalin shrift va jigarrang rangda, agar havola hali yuklanayotgan bo'lsa, kulrang.

Boshlash uchun asosiy sahifaga kiring, ro'yxatga 4 ta mahsulot qo'shing va ularning har biri uchun ma'lumotlarni kiriting. Ularga istalgan nomlarni bering.

Faol havolani ajratishda bizga NavLink komponenti yordam beradi, bu Link komponentining bir turi bo'lib, ma'lumotlarning holati haqida ma'lumotga ega. Odatda u navigatsiya menyusini yaratishda qo'llaniladi.

Keling, root.jsx faylini ochamiz va NavLink ni import qilamiz (Link importini olib tashlashni unutmang, aks holda React xafa bo'lishi mumkin, chunki biz uni endi ishlatmaymiz):

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

Keyin maketda Link komponentini NavLink bilan almashtiramiz:

<NavLink key={product.id} to={`products/${product.id}`}> {product.name ? product.name : <i>unnamed</i>} </NavLink>

Va unga className propini qo'shamiz, a shuningdek shartli mantiqdan foydalanamiz. Agar sahifa yuklangan bo'lsa, havola faol holatga o'tadi, agar yuklanayotgan bo'lsa, yuklash holatiga, agar hech narsa bo'lmasa, avvalgidek qoladi. Bunga bog'liq holda havolaning sinfi o'zgaradi:

<NavLink key={product.id} to={`products/${product.id}`} className={({ isActive, isPending }) => isActive ? 'active' : isPending ? 'loading' : '' } > {product.name ? product.name : <i>Unnamed</i>} </NavLink>

Bizga faqat css faylimizda active va loading sinflari uchun uslublar qo'shish qoldi:

a.active { font-weight: bold; color: brown; } a.loading { color: gray; }

Tayyor! Endi ro'yxatdagi mahsulotlarni bosib ko'ring.

Oldingi darslar uchun topshiriqlarda yaratgan ilovangizni oling. Dars materiallaridan foydalanib, unda talabalar ro'yxati uchun faol havolani ajratib ko'rsatishni amalga oshiring, shunda foydalanuvchi hozir qaysi talabaning ma'lumotlarini ko'rib chiqayotgani aniq bo'lsin.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish