0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【React】React Error Boundaryの導入方法

Last updated at Posted at 2025-10-02

React Error Boundaryは、Reactアプリケーションでエラーハンドリングを簡単に実装できるライブラリです。エラーが発生した際にフォールバックUIを表示し、アプリ全体のクラッシュを防ぐことができます。

インストール

npm install react-error-boundary

基本的な使い方

シンプルなエラー表示

最もシンプルな方法はfallbackプロパティを使用する方法です。

"use client";
import { ErrorBoundary } from "react-error-boundary";

<ErrorBoundary fallback={<div>エラーが発生しました</div>}>
  <YourApp />
</ErrorBoundary>

カスタムフォールバックコンポーネント

エラー情報を表示したり、リトライボタンを追加する場合はFallbackComponentを使用します。

function ErrorFallback({ error, resetErrorBoundary }) {
  return (
    <div role="alert">
      <p>エラーが発生しました:</p>
      <pre style={{ color: "red" }}>{error.message}</pre>
      <button onClick={resetErrorBoundary}>再試行</button>
    </div>
  );
}

<ErrorBoundary FallbackComponent={ErrorFallback}>
  <YourApp />
</ErrorBoundary>

エラーログの記録

onErrorを使用してエラーを外部サービスに送信できます。

const logError = (error, info) => {
  console.error("エラー:", error);
  // 外部APIにログを送信
};

<ErrorBoundary FallbackComponent={ErrorFallback} onError={logError}>
  <YourApp />
</ErrorBoundary>

useErrorBoundaryフック

非同期処理やイベントハンドラー内のエラーを捕捉する場合はuseErrorBoundaryフックを使用します。

import { useErrorBoundary } from "react-error-boundary";

function MyComponent() {
  const { showBoundary } = useErrorBoundary();

  const handleClick = async () => {
    try {
      await fetchData();
    } catch (error) {
      showBoundary(error);
    }
  };

  return <button onClick={handleClick}>データ取得</button>;
}

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?