⊗jsrtPmRtAL 42 of 47 menu

React Router-daky aktiw baglanyşygy bellenmek

Göz öňüne getiriň, biz öňümizdaky programmamyza birnäçe önümi goşduk we her bir önümi synlaýarys. Şu wagt haýsy önümiň sahypasynda ýerleşýändigimizi nädip bilip bileris? Geliň, bu önümi sanawda belleneliň, meselem, gaty hat we goňur reňkde, eger baglanyşyk ýüklenýän bolsa, çal reňkde.

Başlangyç üçin baş sahypa git, sanawa 4 önüm goş we her biri üçin maglumatlary giriz. Olara islendik ad ber.

Aktiw baglanyşygy bellenmekde bize NavLink komponenti kömek eder, bu Link komponentiň görnüşi bolup, maglumat ýagdaýy barada bilýär. Adatça, navigasiýa menýusyny döredilende ulanylýar.

Geliň, root.jsx faýlyny açalyň we NavLink import edeliň (Link import-y aýyrmagy ýatdan çykarmaň, ýogsa React gatylyp biler, sebäbi biz ony mundan beýläk ulanmaýarys):

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

Soňra maketde Link komponentiň ýerine NavLink goýalyň:

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

We ona className propsyny goşalyň, şeýle hem şertli logikany ulanalyň. Eger sahypa ýüklenen bolsa, baglanyşyk aktiw ýagdaýa geçer, eger ýüklenýän bolsa, ýüklenme ýagdaýyna geçer, eger hiç zat bolmasa, öňki ýaly galar. Şuňa garap, baglanyşygyň klassy üýtgeýär:

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

Bize galýan iş, css faýlymyza active we loading klaslary üçin stilleri goşmak:

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

Taýýar! Indi sanawdaky önümler basyp görüň.

Öňki sapaklara tabşyryklarda döreden programmanyzy alyň. Sapak materiallaryny ulanyp, onda talyplaryň sanawy üçin aktiw baglanyşygy bellenmegi amala aşyryň, şeýle etmeli: ulanyjy häzir haýsy talybyň maglumatlaryna seredýändigini bilsin.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et