⊗jsrtPmRtAL 42 of 47 menu

React Routerда фаол ҳаволани ажратиш

Фарз қилайлик, биз иловамизга бир нечта маҳсулот қўшдик ва ҳар бир маҳсулотни кўриб чиқамокдамиз. Қандай қилиб биз қайси маҳсулот саҳифасида Turganimizни биламиз? Келгила, ушбу маҳсулотни рўйхатда, масалан, қалин шрифт ва қўнггир ранг билан ажратамиз, агар ҳавола ҳали юкланмоқда бўлса, кулранг қиламиз.

Бошлаш учун бош саҳифага киринг, рўйхатга 4 маҳсулот қўшинг ва уларнинг ҳар бири учун маълумотларни киритинг. Уларга истаган номларингизни беринг.

Фаол ҳаволани ажратишда бизга NavLink компоненти ёрдам беради, бу Link компонентининг бир тури булиб, маълумотларнинг ҳолати ҳақида билади. Одатда у навигация менюсини яратишда қўлланилади.

Келгила, root.jsx ochaylik va NavLink ни импорт қилайлик (Link ни импорт қилишни унутманг, акс ҳолда React шикоят қилиши мумкин, чунки биз уни бошқа ишлатмаймиз):

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

Сўнгра макетда Link компонентини NavLink га алмаштирамиз:

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

Ва унга className пропсини қўшамиз, шунингдек шартли мантиқни ишлатамиз. Агар саҳифа юкланган бўлса, ҳавола фаол ҳолатга ўтади, агар юкланмоқда бўлса, юклов ҳолатига, агар ҳеч нарса бўлмаса, аввалгидек қолади. Буга қараб ҳаволанинг синфи ўзгаради:

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

Бизга active ва loading синфлари учун услубларни қўшиш қолди:

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

Тайёр! Энди рўйхатдаги маҳсулотларни босиб кўринг.

Олдинги дарслар учун topshiriklarda яратган иловангизни олинг. Дарс materiallaridan фойдаланиб, унда студентлар рўйхати учун фаол ҳаволани ажратишни амалга оширинг, шундай килиб, қайси студентнинг маълумотларини фойдаланувчи ҳозир кўриб turgani аник бўлсин.

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