⊗jsrtPmRtGLDP 36 of 47 menu

Récupération des données du loader via les paramètres d'URL dans React Router

Dans la leçon précédente, nous avons écrit une fonction pour récupérer les données de la page produit, importons getProduct dans le fichier product.jsx :

import { getProduct } from '../forStorage';

Écrivons la fonction loader loader immédiatement après l'importation et avant la fonction Product. Passons-lui les paramètres d'URL :

export async function loader({ params }) { const product = await getProduct(params.productId); return { product }; }

Importons également le hook useLoaderData pour utiliser les données récupérées par le loader :

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

Appliquons useLoaderData, en remplaçant en conséquence la ligne de création de l'objet product au début de la fonction Product par la suivante :

const { product } = useLoaderData();

Et, bien sûr, modifions légèrement notre balisage, puisque nous avons supprimé l'ancien objet product. Remplaçons le contenu des paragraphes :

<p>Name: {product.name}</p> <p>Cost: {product.cost}</p> <p>Amount: {product.amount}</p>

Par ceci :

<p>Nom: {product.name ? product.name : <i>unnamed</i>}</p> <p>Prix: {product.cost ? product.cost : <i>unknown</i>}</p> <p>Quantité: {product.amount ? product.amount : <i>unknown</i>}</p>

Il nous reste à ouvrir main.jsx et y ajouter l'import de loader, appelons-le productLoader :

import Product, { loader as productLoader, } from './routes/product';

Et à le spécifier comme loader pour l'objet de route de la page produit, en l'ajoutant dans children après la propriété element :

children: [ { path: 'products/:productId', element: <Product />, loader: productLoader, }, ],

Voilà, nous avons réglé le chargement des données pour la page produit ! Cependant, nous n'avons rien à charger pour le moment. Lancez l'application, ajoutez des produits et cliquez sur eux dans la liste pour vous assurer que tout fonctionne.

Prenez l'application que vous avez créée dans les travaux pratiques des leçons précédentes. En utilisant le contenu de cette leçon, implémentez un loader, connectez-le, et utilisez les données qu'il fournit pour la page de l'étudiant.

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