⊗jsrtPmRtPR 47 of 47 menu

Route senza percorso in React Router

In questa lezione esamineremo un'altra utile caratteristica della route senza percorso.

Sai che per ogni oggetto route puoi aggiungere una proprietà errorElement e come valore impostare l'elemento che vuoi venga visualizzato quando si verifica un errore.

Ma cosa succede se il nostro errorElement è lo stesso per tutte le route? Potremmo certamente ripeterlo per ognuna, oppure possiamo utilizzare una route senza percorso, avvolgendovi all'interno le route figlie che ci interessano. In questo modo, in caso di errore in una di esse, la nostra route senza percorso le intercetterà e visualizzerà il suo errorElement.

Andiamo nel file main.jsx e avvolgiamo tutte le nostre route figlie in una route senza percorso, rendendole figlie di essa (a sua volta questa route diventerà figlia della route radice), non dimentichiamo di aggiungerle anche la proprietà 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, }, ], }, ], }, ]);

Come verificare ora il funzionamento di questo codice? Possiamo aggiungere una riga che lancia un errore (non dimenticare di rimuoverla dopo, quando avrai verificato). Ad esempio, aggiungiamola come prima riga nella funzione action per la route di eliminazione del prodotto, così quando tentiamo di eliminare un prodotto vedremo l'errore:

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

Ora prova a eliminare un prodotto qualsiasi.

Prendi l'applicazione che hai creato nei compiti delle lezioni precedenti. Utilizzando il materiale della lezione, avvolgi le tue route figlie in una route senza percorso con la proprietà errorElement e verifica che funzioni.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta