⊗jsrxPmATSP 57 of 57 menu

Page du vendeur dans Redux

Il ne reste plus grand-chose. Dans cette leçon, faisons la dernière chose - ajoutons à notre application une page distincte pour chaque vendeur. Il n'y aura ici que des actions déjà familières. Commençons.

Ouvrons notre application avec les produits, et dans celle-ci le dossier sellers. Créons dans ce dossier le fichier SellerPage.jsx. Maintenant, commençons à écrire le code SellerPage pour notre composant :

export const SellerPage = () => {}

Pour commencer, obtenons l'id du vendeur et avec lui trouvons l'objet du vendeur nécessaire dans le slice :

export const SellerPage = () => { let params = useParams() const { sellerId } = params const seller = useSelector((state) => selectSellerById(state, sellerId)) }

Ensuite, plus bas dans le code pour SellerPage après avoir obtenu le vendeur, nous obtiendrons tous les produits, puis nous sélectionnerons parmi eux seulement ceux qui sont mis en ligne par ce vendeur :

const productsOfSeller = useSelector((state) => { const allProducts = selectAllProducts(state) return allProducts.filter((product) => product.seller === sellerId) })

Et ensuite, à partir des noms des produits sélectionnés, nous formerons une liste en utilisant map. De plus, chaque nom de produit dans cette liste sera un lien vers la page de ce produit :

const productNames = productsOfSeller.map((product) => ( <li key={product.id}> <Link to={`/products/${product.id}`}>{product.name}</Link> </li> ))

Et à la fin du code pour SellerPage, retournons le rendu : un titre avec le nom du vendeur et une liste des produits que ce vendeur a mis en ligne :

return ( <div> <h2>Vendeur : {seller.name}</h2> <ul>{productNames}</ul> </div> )

Bien sûr, nous avons aussi besoin d'une route pour la page du vendeur. Ouvrons le fichier App.jsx et ajoutons-la en dernier parmi les routes enfants :

{ path: '/sellers/:sellerId', element: <SellerPage />, },

N'oubliez pas d'importer les hooks et composants nécessaires dans SellersPage.jsx et App.jsx.

Lançons notre application, chargeons les produits, puis dans le menu de gauche, cliquons sur le lien 'Sellers'. Maintenant nous pouvons aller sur la page de n'importe quel vendeur en cliquant sur son nom, puis sur sa page voir tous ses produits. Et, en cliquant sur n'importe lequel de ses produits, nous accéderons à la page de ce produit.

C'est tout pour le moment. Nous avons étudié les bases de Redux pour créer une application et même un peu plus en profondeur. Nous nous sommes familiarisés avec divers outils utiles. Je vous souhaite bonne chance dans la création de vos applications Redux !

Ouvrez votre application avec les étudiants. Après avoir étudié les matériels de la leçon, dans le dossier teachers créez le fichier TeacherPage.jsx. Dans le code du composant TeacherPage, obtenez l'objet du professeur nécessaire et tous les étudiants de cet enseignant. À l'aide de map, créez à partir d'eux une liste, que le nom complet de chaque étudiant soit un lien vers la page de cet étudiant.

Que dans le rendu retourné, vous ayez un titre avec le nom complet de l'enseignant, en dessous un titre plus petit - avec la matière qu'il enseigne, et encore en dessous la liste de ses étudiants.

Dans App.jsx, connectez une autre route enfant pour la page du professeur.

Lancez votre application et assurez-vous que tout fonctionne.

bnidazruro