カテゴリ: React 更新日: 2026/02/16

Reactのエラーメッセージ表示を完全解説!初心者でもわかるフォーム処理の実装

エラーメッセージを表示するフォーム処理の実装
エラーメッセージを表示するフォーム処理の実装

先生と生徒の会話形式で理解しよう

生徒

「Reactでフォームを作ったんですが、入力ミスをどうやって伝えればいいですか?」

先生

「その場合は、エラーメッセージを表示する仕組みを作ります。」

生徒

「赤い文字で注意が出るフォームを見たことがあります。」

先生

「まさにそれです。Reactならシンプルに実装できますよ。」

1. エラーメッセージ表示とは何か

1. エラーメッセージ表示とは何か
1. エラーメッセージ表示とは何か

エラーメッセージ表示とは、入力内容に問題があるときに、 その理由を利用者に伝える仕組みです。 たとえば、未記入のまま提出しようとしたときに、 その場で注意が表示されると分かりやすくなります。 これは、紙の申込書で空欄に赤字で注意書きが入るのと同じ考え方です。

2. Reactフォーム処理の基本構造

2. Reactフォーム処理の基本構造
2. Reactフォーム処理の基本構造

Reactのフォーム処理では、 入力内容をStateで管理します。 Stateとは、画面の状態を保存しておく箱のようなものです。 エラーメッセージも、この箱に入れて管理すると整理しやすくなります。

3. 空欄エラーを表示する基本例

3. 空欄エラーを表示する基本例
3. 空欄エラーを表示する基本例

まずは一番簡単な例です。 入力欄が空のまま送信された場合に、 エラーメッセージを画面に表示します。


import React, { useState } from "react";

function App() {
  const [name, setName] = useState("");
  const [error, setError] = useState("");

  const handleSubmit = (e) => {
    e.preventDefault();
    if (name === "") {
      setError("名前を入力してください");
      return;
    }
    setError("");
    alert("送信完了");
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="text"
        placeholder="名前"
        onChange={(e) => setName(e.target.value)}
      />
      {error && <p class="text-danger">{error}</p>}
      <button type="submit">送信</button>
    </form>
  );
}

export default App;
(名前が空の場合、赤いエラーメッセージが表示されます)

4. 文字数不足エラーの表示

4. 文字数不足エラーの表示
4. 文字数不足エラーの表示

次は、文字数が足りない場合のエラー表示です。 これは、短すぎる入力を防ぐためによく使われます。 最低限必要な情報が書かれているかを確認するイメージです。


import React, { useState } from "react";

function App() {
  const [comment, setComment] = useState("");
  const [error, setError] = useState("");

  const handleSubmit = (e) => {
    e.preventDefault();
    if (comment.length < 5) {
      setError("5文字以上入力してください");
      return;
    }
    setError("");
    alert("送信されました");
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="text"
        placeholder="コメント"
        onChange={(e) => setComment(e.target.value)}
      />
      {error && <p class="text-danger">{error}</p>}
      <button type="submit">送信</button>
    </form>
  );
}

export default App;
(文字数が足りない場合に注意文が表示されます)

5. 複数項目でエラーを管理する方法

5. 複数項目でエラーを管理する方法
5. 複数項目でエラーを管理する方法

実際のフォームでは、 名前やメールアドレスなど、 複数の入力欄があることがほとんどです。 その場合は、エラー用のStateを分けて管理すると分かりやすくなります。


import React, { useState } from "react";

function App() {
  const [name, setName] = useState("");
  const [email, setEmail] = useState("");
  const [error, setError] = useState("");

  const handleSubmit = (e) => {
    e.preventDefault();
    if (name === "" || email === "") {
      setError("すべて入力してください");
      return;
    }
    setError("");
    alert("送信成功");
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="text"
        placeholder="名前"
        onChange={(e) => setName(e.target.value)}
      />
      <input
        type="text"
        placeholder="メール"
        onChange={(e) => setEmail(e.target.value)}
      />
      {error && <p class="text-danger">{error}</p>}
      <button type="submit">送信</button>
    </form>
  );
}

export default App;
(どちらかが未入力だとエラーが表示されます)

6. エラーが消えるタイミングを理解する

6. エラーが消えるタイミングを理解する
6. エラーが消えるタイミングを理解する

エラーメッセージは、 条件が解消されたら消すことが大切です。 いつまでも表示されていると、 正しく入力できたのか分からなくなります。 Stateを空に戻すことで、 自然な表示切り替えができます。

7. 初心者がつまずきやすいポイント

7. 初心者がつまずきやすいポイント
7. 初心者がつまずきやすいポイント

よくある失敗として、 エラーメッセージを直接表示しようとするケースがあります。 Reactでは、Stateを通して表示を制御するのが基本です。 入力内容とエラーを分けて考えることで、 フォーム処理がぐっと分かりやすくなります。

8. エラーメッセージ表示の考え方まとめ

8. エラーメッセージ表示の考え方まとめ
8. エラーメッセージ表示の考え方まとめ

エラーメッセージ表示は、 利用者を助けるための仕組みです。 入力ミスを責めるのではなく、 どこを直せばよいかを伝える役割があります。 Reactのフォーム処理では、 Stateと条件判定を使うことで、 シンプルかつ見やすく実装できます。

カテゴリの一覧へ
新着記事
New1
Next.js
Next.jsのcomponentsフォルダ構成ベストプラクティス完全ガイド!初心者でも迷わないNext.jsの設計
New2
React
ReactのカスタムフックでGraphQL APIを扱う方法!初心者でもわかる実践入門
New3
Next.js
Next.jsの環境構築を完全ガイド!初心者でもわかるNode.jsとnpm・yarnのインストール方法
New4
React
Reactのエラーメッセージ表示を完全解説!初心者でもわかるフォーム処理の実装
人気記事
No.1
Java&Spring記事人気No1
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
Next.js
Next.jsのApp RouterとPages Routerの役割の違いを完全解説!初心者でもわかるNext.jsの基本概念
No.3
Java&Spring記事人気No3
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.4
Java&Spring記事人気No4
React
ReactのPropsを使ってコンポーネントの表示を動的に切り替える方法を解説!初心者でもわかるReact入門
No.5
Java&Spring記事人気No5
React
ReactでAxiosのPUT・DELETEリクエストを完全ガイド!初心者でもわかるAPI通信の基本
No.6
Java&Spring記事人気No6
Next.js
Next.jsのApp RouterとServer Componentsの関係まとめ!初心者でもわかるNext.jsの新しい仕組み
No.7
Java&Spring記事人気No7
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
No.8
Java&Spring記事人気No8
React
ReactのuseEffect依存配列を徹底解説!初心者でも理解できるDependency Arrayの仕組み