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

Reactのフォーム入力値を初期化する方法を完全解説!初心者でもわかるリセット処理

フォーム入力値を初期化する方法(リセット処理)
フォーム入力値を初期化する方法(リセット処理)

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

生徒

「Reactでフォームを作ったんですが、入力した文字を空に戻す方法がわかりません」

先生

「フォームの入力値を初期化する、いわゆるリセット処理ですね」

生徒

「送信したあとや、やり直したいときに全部消したいんです」

先生

「Reactでは状態を使って管理しているので、その考え方が分かると簡単ですよ」

1. Reactのフォーム処理とは何か

1. Reactのフォーム処理とは何か
1. Reactのフォーム処理とは何か

Reactのフォーム処理とは、文字入力やチェックボックス、ボタンなど、画面に入力された内容をプログラムで管理する仕組みのことです。 普通のHTMLでは、ブラウザが自動で入力内容を覚えていますが、Reactでは「状態」と呼ばれる仕組みで入力値を管理します。

状態とは、アプリの中で一時的に覚えておきたい情報のことです。 ノートにメモを書くようなイメージで、入力された文字を変数として保存していると考えると分かりやすいです。

2. useStateを使った基本的な入力管理

2. useStateを使った基本的な入力管理
2. useStateを使った基本的な入力管理

Reactでは、useStateという機能を使ってフォームの入力値を管理します。 useStateは「今の値」と「値を変更するための道具」をセットで用意してくれます。


import React, { useState } from "react";

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

  return (
    <div>
      <input
        type="text"
        value={name}
        onChange={(e) => setName(e.target.value)}
      />
      <p>入力された名前:{name}</p>
    </div>
  );
}

export default App;
(文字を入力すると、その内容がすぐ下に表示されます)

3. リセット処理の基本的な考え方

3. リセット処理の基本的な考え方
3. リセット処理の基本的な考え方

フォーム入力値を初期化するとは、状態を最初の値に戻すことです。 先ほどの例では、nameの初期値は空の文字でした。 つまり、setNameに空の文字を渡せば、入力欄は空に戻ります。

これは、消しゴムでノートの文字を消すような感覚です。 入力欄そのものを直接消すのではなく、裏で管理している状態を書き換えています。

4. ボタンを押して入力内容をリセットする方法

4. ボタンを押して入力内容をリセットする方法
4. ボタンを押して入力内容をリセットする方法

次は、リセットボタンを押すと入力内容が消える例です。 フォームのやり直しや、入力ミスを修正したいときによく使われます。


import React, { useState } from "react";

function App() {
  const [email, setEmail] = useState("");

  const resetForm = () => {
    setEmail("");
  };

  return (
    <div>
      <input
        type="email"
        value={email}
        onChange={(e) => setEmail(e.target.value)}
      />
      <button onClick={resetForm}>リセット</button>
    </div>
  );
}

export default App;
(文字を入力してリセットボタンを押すと、入力欄が空になります)

5. 複数の入力項目をまとめて初期化する方法

5. 複数の入力項目をまとめて初期化する方法
5. 複数の入力項目をまとめて初期化する方法

実際のフォームでは、名前やメールアドレスなど、複数の入力欄を使うことが多いです。 その場合でも、考え方は同じで、それぞれの状態を初期値に戻します。


import React, { useState } from "react";

function App() {
  const [name, setName] = useState("");
  const [age, setAge] = useState("");

  const resetForm = () => {
    setName("");
    setAge("");
  };

  return (
    <div>
      <input
        type="text"
        placeholder="名前"
        value={name}
        onChange={(e) => setName(e.target.value)}
      />
      <input
        type="number"
        placeholder="年齢"
        value={age}
        onChange={(e) => setAge(e.target.value)}
      />
      <button onClick={resetForm}>全てリセット</button>
    </div>
  );
}

export default App;
(2つの入力欄が同時に空になります)

6. フォーム送信後に自動でリセットする方法

6. フォーム送信後に自動でリセットする方法
6. フォーム送信後に自動でリセットする方法

フォームを送信したあとに、自動で入力内容を消したい場面も多いです。 この場合は、送信処理の最後でリセット処理を行います。


import React, { useState } from "react";

function App() {
  const [message, setMessage] = useState("");

  const handleSubmit = () => {
    alert(message);
    setMessage("");
  };

  return (
    <div>
      <textarea
        value={message}
        onChange={(e) => setMessage(e.target.value)}
      />
      <button onClick={handleSubmit}>送信</button>
    </div>
  );
}

export default App;
(送信後、入力欄が自動で空になります)

7. フォーム初期化でよくあるつまずきポイント

7. フォーム初期化でよくあるつまずきポイント
7. フォーム初期化でよくあるつまずきポイント

初心者がつまずきやすいのは、入力欄を直接操作しようとしてしまう点です。 Reactでは、画面よりも状態が正解だと考えます。 入力値が消えないときは、状態が本当に初期値に戻っているかを確認することが大切です。

また、value属性を指定していない場合、リセットしても画面が変わらないことがあります。 フォーム入力値を管理するときは、必ずvalueとonChangeをセットで使うようにしましょう。

カテゴリの一覧へ
新着記事
New1
Next.js
Next.jsのlibフォルダ活用完全ガイド!初心者でもわかるロジック整理の基本
New2
Next.js
Next.jsプロジェクトをcreate-next-appで作成する方法を完全解説!初心者でも迷わないNext.js入門
New3
React
複雑な条件分岐をコンポーネントに切り出す方法を徹底解説!React条件付きレンダリング入門
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のuseEffect依存配列を徹底解説!初心者でも理解できるDependency Arrayの仕組み
No.5
Java&Spring記事人気No5
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.6
Java&Spring記事人気No6
Next.js
Next.jsのApp RouterとServer Componentsの関係まとめ!初心者でもわかるNext.jsの新しい仕組み
No.7
Java&Spring記事人気No7
Next.js
Next.jsとは?Reactとの関係を初心者向けにやさしく解説|Next.jsの基本概念と特徴
No.8
Java&Spring記事人気No8
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介