Manejo de errores
Parte de la sección Esenciales de Next.js del Journey de React de Coddy — lección 27 de 47.
Las cargas fallan. La base de datos está caída, el registro ha desaparecido, algo lanza un error. Sin un plan, un mal await se lleva toda la pantalla consigo.
error.jsx es la imagen especular de loading.jsx: misma idea, resultado opuesto. Colócalo junto a una page y capturará cualquier cosa que esa page lance durante el renderizado:
app/
menu/
page.jsx
loading.jsx while it works
error.jsx when it doesn'tA diferencia de loading.jsx, tiene un requisito indispensable:
'use client';
export default function Error({ error, reset }) {
return (
<div>
<h2>Couldn't load the menu</h2>
<button onClick={reset}>Try again</button>
</div>
);
}error.jsx debe ser un componente de cliente. La razón está ahí mismo en el JSX: onClick. Un botón de reintento es interactividad, y la interactividad necesita un componente que se envíe al navegador. Si omites 'use client', obtendrás el error de controlador de eventos del capítulo anterior, en la misma página cuya función era gestionar errores.
Recibe dos props:
error: el Error que se lanzó, para que puedas registrarloreset: una function que vuelve a renderizar la sección fallida. Llámala y la page lo intenta de nuevo
reset es lo que hace que esto sea más que una pantalla de error con mejor aspecto. Un fallo puntual que falló una vez a menudo funcionará la segunda vez, y el usuario nunca tuvo que recargar nada.
Al igual que los otros archivos especiales, error.jsx cubre su propia carpeta y todo lo que está anidado debajo de ella, por lo que un solo archivo cerca de la raíz es una red de seguridad para toda una sección del sitio.
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Esenciales de Next.js
2Enrutamiento y enlaces
Las carpetas son rutasRutas anidadasEnlaces entre páginasRutas dinámicasPáginas no encontradasRecapitulación: Enrutamiento5Datos en el servidor
Componentes asíncronosEspera de parámetros de rutaDos peticiones a la vezEstados de cargaManejo de erroresResumen: Obtención de datos