⊗jsrtPmRtPR 47 of 47 menu

Ruta sin path en React Router

En esta lección, consideraremos otra propiedad útil de la ruta sin path.

Sabes que para cada objeto de ruta puedes agregar la propiedad errorElement y como valor establecer el elemento que deseas mostrar cuando ocurra un error.

Pero, ¿qué pasa si nuestro errorElement es el mismo para todas las rutas? Por supuesto, podríamos repetir lo mismo para cada una, o podemos usar una ruta sin path, envolver las rutas hijas que nos interesan dentro de ella. Entonces, en caso de que ocurra un error en una de ellas, nuestra ruta sin path las capturará y mostrará su errorElement.

Vayamos al archivo main.jsx y envolvamos todas nuestras rutas hijas en una ruta sin path, haciéndolas hijas de ella (a su vez, esta ruta se convertirá en hija de la ruta raíz), no olvidemos agregarle también la propiedad 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, }, ], }, ], }, ]);

¿Cómo verificar ahora el funcionamiento de este código? Podemos agregar una línea que lance un error (no olvides eliminarla después, cuando lo hayas verificado). Por ejemplo, agreguémosla como primera línea en la función action para la ruta de eliminación del producto, entonces al intentar eliminar un producto veremos el error:

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

Ahora intenta eliminar algún producto.

Toma la aplicación que creaste en las tareas de lecciones anteriores. Usando los materiales de la lección, envuelve tus rutas hijas en una ruta sin path con la propiedad errorElement y verifica que funcione.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar