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

Reactのテキストボックス入力値をStateで管理する方法を完全ガイド!初心者でもわかるフォーム処理

テキストボックスの入力値をStateで管理する方法
テキストボックスの入力値をStateで管理する方法

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

生徒

「Reactで文字を入力するテキストボックスを作ったんですが、入力した値はどこに入っているんですか?」

先生

「Reactでは、その入力値をStateという仕組みで管理します。」

生徒

「Stateって何ですか?難しそうです…」

先生

「大丈夫です。文字を入れておく箱だと思ってください。順番に説明しますよ。」

1. テキストボックスとフォーム処理の基本

1. テキストボックスとフォーム処理の基本
1. テキストボックスとフォーム処理の基本

テキストボックスとは、キーボードで文字を入力するための部品です。 名前入力や検索欄など、ほとんどのWebサイトで使われています。 Reactでは、この入力された文字をそのまま放置せず、プログラムで扱えるようにします。

入力された文字を管理する仕組みをフォーム処理と呼びます。 Reactでは、画面とデータを同じ状態に保つことがとても重要です。

2. Stateとは何かをやさしく理解しよう

2. Stateとは何かをやさしく理解しよう
2. Stateとは何かをやさしく理解しよう

Stateとは、Reactの中で使われる「今の状態」を表す仕組みです。 難しく考えず、「メモ帳」や「引き出し」を想像してください。 テキストボックスに入力した文字を、この引き出しにしまいます。

しまっておけば、あとで取り出して画面に表示したり、 ボタンを押したときに使ったりできます。 StateはReactが大切に管理してくれる場所です。

3. useStateを使って入力値を保存する

3. useStateを使って入力値を保存する
3. useStateを使って入力値を保存する

ReactではuseStateという仕組みを使ってStateを作ります。 useStateは「新しい引き出しを用意する命令」です。 テキストボックスの入力値を、この引き出しに入れていきます。


import React, { useState } from "react";

function App() {
  const [text, setText] = useState("");

  return (
    <div>
      <input
        type="text"
        value={text}
        onChange={(e) => setText(e.target.value)}
      />
      <p>入力された文字:{text}</p>
    </div>
  );
}

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

4. valueとonChangeの役割

4. valueとonChangeの役割
4. valueとonChangeの役割

valueは「今テキストボックスに表示する文字」を指定します。 onChangeは「文字が変わった瞬間に行う処理」です。 この2つをセットで使うことで、Reactが入力内容を完全に管理します。

蛇口をひねると水が出るように、 キーボードを打つとonChangeが反応し、 新しい文字がStateに保存されます。

5. ボタンと組み合わせて入力値を使う

5. ボタンと組み合わせて入力値を使う
5. ボタンと組み合わせて入力値を使う

入力した文字は、ボタンを押したときに使うことがよくあります。 Stateに保存されていれば、いつでも取り出せます。 これがReactで入力値を管理する大きなメリットです。


import React, { useState } from "react";

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

  const handleClick = () => {
    alert(message);
  };

  return (
    <div>
      <input
        value={message}
        onChange={(e) => setMessage(e.target.value)}
      />
      <button onClick={handleClick}>表示</button>
    </div>
  );
}

export default App;
(ボタンを押すと、入力した文字が表示されます)

6. 複数のテキストボックスを管理する方法

6. 複数のテキストボックスを管理する方法
6. 複数のテキストボックスを管理する方法

実際のフォームでは、入力欄が一つだけとは限りません。 名前やコメントなど、複数のテキストボックスを使います。 Reactでは、それぞれにStateを用意します。


import React, { useState } from "react";

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

  return (
    <div>
      <input
        placeholder="名前"
        value={name}
        onChange={(e) => setName(e.target.value)}
      />
      <input
        placeholder="コメント"
        value={comment}
        onChange={(e) => setComment(e.target.value)}
      />
      <p>{name}:{comment}</p>
    </div>
  );
}

export default App;
(それぞれの入力値が別々に管理されます)

7. 初心者がつまずきやすい注意点

7. 初心者がつまずきやすい注意点
7. 初心者がつまずきやすい注意点

テキストボックスに文字が入力できない場合、 valueだけを書いてonChangeを書き忘れていることが多いです。 Reactでは必ず両方を書く必要があります。

入力値をStateで管理することで、 画面とデータがズレにくくなります。 最初は難しく感じますが、慣れるととても便利です。

カテゴリの一覧へ
新着記事
New1
Next.js
Next.js Client ComponentsでuseState/useEffectを使う理由を完全ガイド!初心者でもわかるNext.jsの基本
New2
React
Reactのカスタムフックの作り方を解説!初心者でもわかる再利用可能なロジックの基本
New3
React
ReactでAxiosの共通ヘッダーやトークンを設定する方法を完全ガイド!初心者でもわかるAPI通信の基本
New4
React
Reactのテキストボックス入力値をStateで管理する方法を完全ガイド!初心者でもわかるフォーム処理
人気記事
No.1
Java&Spring記事人気No1
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.2
Java&Spring記事人気No2
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.3
Java&Spring記事人気No3
React
ReactのPropsを使ってコンポーネントの表示を動的に切り替える方法を解説!初心者でもわかるReact入門
No.4
Java&Spring記事人気No4
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.5
Java&Spring記事人気No5
React
Reactの環境構築とは?初心者でもできるセットアップ手順まとめ
No.6
Java&Spring記事人気No6
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.7
Java&Spring記事人気No7
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.8
Java&Spring記事人気No8
React
Reactで複数イベントをまとめて処理!共通関数化でコード整理