⊗jsrtPmRtAL 42 of 47 menu

Die Aandui van Aktiewe Skakels in React Router

Gestel ons het verskeie produkte by ons aansoek gevoeg en sien elkeen van die produkte na. Hoe weet ons op watter produk se bladsy ons tans is? Kom ons toon hierdie produk in die lys, byvoorbeeld met vetdruk en 'n bruin kleur, en as die skakel nog laai, dan met grys.

Om te begin, gaan na die tuisblad, voeg 4 produkte by tot die lys en voer data in vir elkeen. Gee hulle enige name.

Om die aktiewe skakel aan te dui sal die komponent NavLink help, dit is 'n subtipe van die Link-komponent wat die data se status ken. Dit word gewoonlik gebruik wanneer 'n navigasiemenu geskep word.

Kom ons maak root.jsx oop en voer NavLink in (moenie vergeet om die invoer van Link te verwyder nie, anders kan React kla, aangesien ons dit nie meer gebruik nie):

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

Vervang dan die komponent Link met NavLink in die uitleg:

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

En voeg die prop className daaraan toe, sowel as die gebruik van voorwaardelike logika. As die bladsy gelaai is, sal die skakel na 'n aktiewe status verander, as dit laai, dan na 'n laaistatus, en as niks gebeur nie, sal dit dieselfde bly. Afhangend hiervan sal die skakel se klas verander:

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

Ons moet net nog style byvoeg vir die active en loading klasse in ons css-lêer:

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

Klaar! Klik nou op produkte in die lys.

Neem die aansoek wat jy geskep het in opdragte vir vorige lesse. Deur die lesse se materiaal te gebruik, implementeer daarin die aanduiding van die aktiewe skakel vir die lys studente sodat dit duidelik is watter student se data die gebruiker tans besigtig.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČ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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp