Интерфейс загрузки и ошибки

loading.tsx, error.tsx, not-found.tsx, Redbox в консоли и Dev Overlay.

Состояния загрузки и границы ошибок отображаются в консоли. Определите их для каждого сегмента маршрута в loading.tsx и error.tsx.

Интерфейс загрузки

Добавьте loading.tsx, чтобы показывать запасной интерфейс, пока рендеринг страницы приостановлен.

app/sessions/[id]/loading.tsxtsx
import { Spinner } from "@textjs/app";export default function Loading() {  return <Spinner variant="dots" label="Loading session…" />;}
Вживую56×10 · booting Turbolog…tsx
preview://spinner:1
<Box className="flex-col gap-1 p-1">  <Spinner variant="dots" label="Loading session…" />  <Spinner variant="pulse" label="Streaming frames" /></Box>

Ошибки

Добавьте error.tsx, чтобы перехватывать ошибки рендеринга. Он получает ошибку и функцию reset.

app/sessions/[id]/error.tsxtsx
import { Text, useInput, type ErrorComponentProps } from "@textjs/app";export default function SessionError({ error, reset }: ErrorComponentProps) {  useInput((e) => e.input === "r" && reset());  return <Text color="danger">{error.message} · press r to retry</Text>;}

Не найдено

Вызовите notFound(), чтобы отрендерить ближайший not-found.tsx.

import { notFound } from "@textjs/app/navigation";if (!session) notFound();

Redbox в консоли

В режиме разработки неперехваченные ошибки открывают в консоли оверлей с сообщением и местом ошибки в исходном коде. После исправления файла он закрывается.

╭─ ▼ Unhandled Runtime Error ─────────────────╮│  TypeError: Cannot read 'title'             ││  app/sessions/[id]/page.tsx (14:27)         │╰───────────────────────────── esc dismiss ───╯

Оверлей разработки

В режиме разработки кнопка [▼] в левом нижнем углу консоли — это оверлей разработки. Нажмите F2 или Ctrl+`, чтобы открыть его и проверить маршрут, время отрисовки кадров и макет. Отключите его с помощью devIndicators: false.

Изменить эту страницу на GitHub