⊗jsrtPmRtPR 47 of 47 menu

Route sans chemin dans React Router

Dans cette leçon, nous examinerons une autre propriété utile de la route sans chemin.

Vous savez que pour chaque objet de route, vous pouvez ajouter une propriété errorElement et définir comme valeur l'élément que vous souhaitez afficher lorsqu'une erreur se produit.

Mais que faire si notre errorElement est identique pour toutes les routes ? On pourrait, bien sûr, le répéter pour chacune, ou on pourrait utiliser une route sans chemin, y envelopper les routes enfants qui nous intéressent. Ainsi, en cas d'erreur sur l'une d'elles, notre route sans chemin les interceptera et affichera son errorElement.

Allons dans le fichier main.jsx et enveloppons toutes nos routes enfants dans une route sans chemin, en les rendant ses enfants (à son tour cette route deviendra un enfant de la racine), n'oublions pas de lui ajouter également la propriété errorElement :

const router = createBrowserRouter([ { path: '/', element: <Root />, errorElement: <ErrorPage404 />, loader: rootLoader, action: rootAction, children: [ { errorElement: <ErrorPage404 />, children: [ { index: true, element: <Index /> }, { path: 'products/:productId', element: <Product />, loader: productLoader, }, { path: 'products/:productId/edit', element: <EditProduct />, loader: editProductLoader, action: editAction, }, { path: 'products/:productId/delete', action: deleteAction, }, ], }, ], }, ]);

Comment vérifier maintenant le fonctionnement de ce code ? On peut ajouter une ligne qui lance une erreur (n'oubliez pas de la supprimer ensuite, quand vous aurez vérifié). Par exemple, ajoutons-la comme première ligne dans la fonction action pour la route de suppression du produit, alors en essayant de supprimer un produit nous verrons une erreur :

export async function action({ params }) { throw new Error('error'); await deleteProduct(params.productId); return redirect('/'); }

Maintenant, essayez de supprimer un produit.

Prenez l'application que vous avez créée dans les exercices des leçons précédentes. En utilisant le matériel de la leçon, enveloppez vos routes enfants dans une route sans chemin avec la propriété errorElement et vérifiez que cela fonctionne.

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