⊗jsrxPmRDPPR 22 of 57 menu

Page produit dans le navigateur avec Redux

Lors de la dernière leçon, nous avons créé une page distincte pour le produit. Maintenant, nous devons faire en sorte que lorsqu'on clique sur un bouton, notre page apparaisse dans le navigateur.

Pour commencer, attachons-lui une adresse à laquelle elle sera affichée. Ouvrons le fichier App.jsx, dans lequel nous définissons les routes, et ajoutons dans children une route enfant supplémentaire (n'oubliez pas d'importer ProductPage.jsx). Spécifions le chemin et le composant que nous afficherons :

{ path: '/products/:productId', element: <ProductPage />, },

Maintenant, ouvrons ProductsList.jsx dans le dossier products et modifions légèrement le code pour dispProducts. Nous avons désormais une page distincte avec des informations complètes sur chaque produit. Cela signifie que dans la liste des produits, nous n'afficherons que le nom du produit et un texte de description abrégé. Nous ajouterons également un lien sous forme d'élément de navigation Link de la bibliothèque de routeur, en cliquant sur lequel on pourra accéder à la page du produit. Ajoutons également une classe product-excerpt à la div pour espacer les produits. Maintenant, notre code pour dispProducts sera le suivant :

const dispProducts = products.map((product) => ( <div key={product.id} className="product-excerpt"> <h3>{product.name}</h3> <p>{product.desc.substring(0, 100)}</p> <Link to={`/products/${product.id}`} className="link-btn"> view </Link> </div> ))

Importons Link :

import { Link } from 'react-router-dom'

Et ajoutons des styles pour les classes link-btn et product-excerpt dans index.css :

.product-excerpt { margin-top: 30px; border: 1px solid gray; border-radius: 5px; padding: 10px; } .link-btn { border: 1.5px solid gray; border-radius: 10px; background-color: coral; color: black; padding: 1px 12px 1px 12px; }

Enfin, rendons également fonctionnel le lien dans le menu de gauche, menant à la page de la liste des produits, afin que nous puissions y accéder depuis n'importe quel autre endroit. Pour cela, ouvrons notre root.jsx et remplaçons cette ligne de code :

<a>Products</a>

Par la suivante :

<NavLink to="/products" end> Products </NavLink>

N'oublions pas non plus d'importer NavLink de la bibliothèque pour React Router :

import { Outlet, NavLink } from 'react-router-dom'

Lançons notre application. Maintenant, nous pouvons accéder à la page d'informations de n'importe quel produit en cliquant sur le bouton de visualisation. Essayez maintenant d'ajouter un nouveau produit et regardez ses informations sur une page distincte en cliquant sur le bouton de visualisation. De plus, désormais, pour revenir à la liste des produits, il suffit de cliquer sur 'Products' dans le menu de gauche. En vous trouvant sur différentes pages, regardez comment l'URL change dans la barre d'adresse du navigateur.

Ouvrez votre application avec les étudiants. Dans le fichier App.jsx, créez une autre route enfant pour la page de l'étudiant.

Dans le fichier StudentsList.jsx, apportez des modifications au code pour dispStudents, comme montré dans la leçon.

Faites en sorte que le lien 'Students' dans le menu de gauche mène à la page avec la liste des étudiants. Vérifiez que tout fonctionne.

Observez comment la valeur dans la barre d'adresse du navigateur change, en fonction de la page sur laquelle vous vous trouvez actuellement.

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