⊗jsrtPmRtPR 47 of 47 menu

Ruta fără cale în React Router

În această lecție vom analiza încă o proprietate utilă a rutei fără cale.

Știți că pentru fiecare obiect de rută puteți adăuga proprietatea errorElement și ca valoare să setați elementul pe care doriți să îl afișați în cazul apariției unei erori.

Dar dacă errorElement va fi același pentru toate rutele? Se poate, desigur, să-l adăugăm același lucru pentru fiecare, sau putem folosi o rută fără cale, să împachetăm în ea rutele copil care ne interesează. Atunci în cazul apariției unei erori pe una dintre ele, ruta noastră fără cale le va prinde și va afișa propriul său errorElement.

Să mergem în fișierul main.jsx și să împachetăm într-o rută fără cale toate rutele noastre copil, făcându-le copii ale acesteia (la rândul său această rută va deveni copilă a rutei de bază), să nu uităm să-i adăugăm și proprietatea 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, }, ], }, ], }, ]);

Cum putem verifica acum funcționarea acestui cod? Putem adăuga o linie care aruncă o eroare (nu uitați să o eliminați mai târziu, când verificați). Să adăugăm, de exemplu, ca primă linie în funcția action pentru ruta de ștergere a produsului, atunci când încercăm să ștergem un produs vom vedea eroarea:

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

Acum încercați să ștergeți un produs.

Luați aplicația creată de dvs. în sarcinile din lecțiile anterioare. Folosind materialele lecției, împachetați rutele dvs. copil într-o rută fără cale cu proprietatea errorElement și verificați că funcționează.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge