Closed7

💽 Remixのエラーハンドリング

おたきおたき

Root Error Boundary

  • Remixには、デフォルトでErrorBoundaryが組み込まれている
  • オリジナルのBoundaryを作るには、app/roor.tsxからexportすることで実現可能
app/root.tsx
export function ErrorBoundary() {
  const error = useRouteError();
  console.error(error);
  return (
    <html>
      <head>
        <title>Oh no!</title>
        <Meta />
        <Links />
      </head>
      <body>
        {/* add the UI you want your users to see */}
        <Scripts />
      </body>
    </html>
  );
}

Nested Error Boundary

  • ネストされたルートからErrorBoundaryでは、そのルート以下のすべてのエラーがキャッチされる
  • 全ルートにErrorBoudnaryを作る必要はなく、ない場合は最も近いBoundaryにバブルアップされる
  • 親ルートの他のUIは正常にレンダリングされるので、クライアント側での状態に影響はない

参考

https://remix.run/docs/en/main/guides/errors#nested-error-boundaries

おたきおたき

Remixでエラーハンドリングがどのように機能するか?

  • Error Boundaryは、レスポンスとエラーの両方をキャッチする
    • もし対処していない場合は、アプリが落ちてしまう可能性がある
  • Error Boundaryを追加すると、そのルートと子ルートは保護される
  • rootを保護すると、アプリ全体が保護される

このスクラップは1ヶ月前にクローズされました