⊗jsrtPmRtAL 42 of 47 menu

Mise en évidence du lien actif dans React Router

Supposons que nous ayons ajouté plusieurs produits à notre application et que nous consultions chacun des produits. Comment pouvons-nous savoir sur la page de quel produit nous nous trouvons actuellement ? Faisons ressortir ce produit dans la liste, par exemple en gras et en couleur marron, et si le lien est encore en cours de chargement, en gris.

Pour commencer, allez sur la page d'accueil, ajoutez 4 produits à la liste et pour chacun d'eux, saisissez des données. Donnez-leur n'importe quels noms.

Pour mettre en évidence le lien actif, le composant NavLink nous aidera. C'est une variante du composant Link, qui connaît l'état des données. Il est généralement utilisé lors de la création d'un menu de navigation.

Ouvrons root.jsx et importons NavLink (n'oubliez pas de supprimer l'importation de Link, sinon React pourrait râler, puisque nous ne l'utilisons plus) :

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

Ensuite, dans le layout, remplaçons le composant Link par NavLink :

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

Et ajoutons-lui la prop className, ainsi qu'une logique conditionnelle. Si la page est chargée, le lien passera à l'état actif, si elle est en cours de chargement, à l'état de chargement, et si rien ne se passe, il restera inchangé. En fonction de cela, la classe du lien changera :

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

Il ne nous reste plus qu'à ajouter des styles pour les classes active et loading dans notre fichier css :

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

Terminé ! Maintenant, cliquez sur les produits dans la liste.

Prenez l'application que vous avez créée dans les travaux dirigés des leçons précédentes. En utilisant le contenu de cette leçon, implémentez-y la mise en évidence du lien actif pour la liste des étudiants, afin qu'il soit clair quelles données de l'étudiant l'utilisateur est en train de consulter.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser