⊗jsrtPmRtAL 42 of 47 menu

React Router-da Aktiv Linkin Secilmesi

Təsəvvür edin ki, biz ərizəmizə bir neçə məhsul əlavə etmişik və hər bir məhsula baxırıq. Bəs hazırda hansı məhsulun səhifəsində olduğumuzu necə başa düşək? Gəlin bu məhsulu siyahıda, məsələn, qalın şrift və qəhvəyi rənglə vurğulayaq, əgər link hələ yüklənirsə, onda boz rəngdə.

Başlamaq üçün əsas səhifəyə daxil olun, siyahıya 4 məhsul əlavə edin və onların hər biri üçün məlumatları daxil edin. Onlara istənilən adlar verin.

Aktiv linki vurğulamaqda bizə NavLink komponenti kömək edəcək, bu Link komponentinin bir növüdür, hansı ki, məlumatların vəziyyətindən xəbərdardır. Adətən o, naviqasiya menyu yaradılarkən tətbiq olunur.

Gəlin root.jsx faylını açaq və NavLink import edək (Link importunu silməyi unutmayın, yoxsa React etiraz edə bilər, çünki biz onu artıq istifadə etmirik):

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

Sonra isə layihədə Link komponentini NavLink ilə əvəz edək:

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

Və ona className propunu əlavə edək, həmçinin şərti məntiqdən istifadə edək. Əgər səhifə yüklənibsə, onda link aktiv vəziyyətə keçəcək, əgər yüklənirsə, onda yüklənmə vəziyyətinə, əgər heç nə baş vermirsə, onda əvvəlki kimi qalacaq. Buna əsasən linkin sinifi dəyişəcək:

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

Bizə yalnız css faylımızda activeloading sinifləri üçün stil əlavə etmək qalır:

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

Hazırdır! İndi isə siyahıdakı məhsullara tıklayın.

Əvvəlki dərslərin tapşırıqlarında yaratdığınız ərizəni götürün. Dərsin materiallarından istifadə edərək, içində tələbələrin siyahısı üçün aktiv linkin vurğulanmasını həyata keçirin, elə ki, istifadəçinin hazırda hansı tələbənin məlumatlarına baxdığı anlaşılsın.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et