⊗jsrtPmRtLd 30 of 47 menu

Chargeur de données pour la route dans React Router

Dans la leçon précédente, nous avons extrait les données des produits du stockage. Maintenant, ces données doivent être chargées dans l'élément de route. Pour cela, on utilise une fonction chargeur (loader). Maintenant, nous allons la créer.

Ouvrons root.jsx, ajoutons ici une ligne d'importation pour getProducts depuis forStorage.js :

import { getProducts } from '../forStorage'

Immédiatement après les lignes d'importation et avant la fonction Root, écrivons le code de la fonction loader, qui via getProducts va nous retourner les données des produits depuis le stockage. En général, de telles fonctions doivent être écrites dans un fichier séparé, mais nous allons être un peu paresseux, donc ne faites pas attention à l'avertissement :

export async function loader() { const products = await getProducts(); return { products }; }

Maintenant, ajoutons l'importation de notre chargeur dans main.jsx. Ce chargeur sera pour notre racine, donc nous l'appellerons rootLoader :

import Root, { loader as rootLoader } from './routes/root';

Et ajoutons-le à notre objet de route dans la propriété loader :

const router = createBrowserRouter([ { path: '/', element: <Root />, errorElement: <ErrorPage404 />, loader: rootLoader, children: [ { path: 'products/:productId', element: <Product />, }, ], }, ]);

Prenez l'application que vous avez créée dans les travaux dirigés des leçons précédentes. En utilisant le contenu de la leçon, écrivez dans le fichier root.jsx la fonction loader pour charger les données des étudiants et ajoutez-la dans l'objet de route dans main.jsx.

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