⊗jsrtPmRtPR 47 of 47 menu

Teeta marsruut React Routeris

Selles õppetükis vaatleme veel üht kasulikku omadust teeta marsruudil.

Te teate, et iga marsruudiobjekti jaoks saate lisada omaduse errorElement ja väärtuseks seada selle elemendi, mida soovite kuvada vea tekkimisel.

Aga mis siis, kui meil on errorElement kõigi marsruutide jaoks sama? Võib muidugi igaühele sama asja panna, aga võib kasutada teeta marsruuti, määrata selle alla meid huvitavad laste marsruudid. Siis vea tekkimisel ühel neist, meie teeta marsruut püüab need kinni ja kuvab oma errorElement.

Läheme faili main.jsx ja määrame teeta marsruudi alla kõik meie laste marsruudid, tehes need selle lasteks (see marsruut omakorda saab juurmarsruudi lapseks), ärgem unustagem lisada sellele ka omadust 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, }, ], }, ], }, ]);

Kuidas kontrollida nüüd selle koodi tööd? Võib lisada rea vea viskamisega (ärge unustage seda hiljem eemaldada, kui olete kontrollinud). Paneme näiteks selle esimese reana funktsiooni action toote kustutamise marsruudi jaoks, siis toodet kustutada üritades näeme viga:

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

Proovige nüüd mõnda toodet kustutada.

Võtke rakendus, mille lõite ülesannetes eelmistele tundidele. Kasutades tunni materjale, määrake oma lapsemarsruudid teeta marsruudi alla omadusega errorElement ja kontrollige, et see töötab.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu