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

Reactのセレクトボックス管理を完全解説!初心者でもわかるReactフォーム処理

セレクトボックス(ドロップダウン)の選択を管理する方法
セレクトボックス(ドロップダウン)の選択を管理する方法

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

生徒

「Reactでプルダウンみたいな選択欄を作りたいんですが、どうやって選んだ内容を使うんですか?」

先生

「それはセレクトボックスと呼ばれる入力方法ですね。Reactでは選択された内容を状態として管理します。」

生徒

「クリックしたら中身が変わるのに、どうやって覚えているんですか?」

先生

「画面の見た目とは別に、選択結果を保存する仕組みがあるので、順番に見ていきましょう。」

1. セレクトボックスとは何か

1. セレクトボックスとは何か
1. セレクトボックスとは何か

セレクトボックスは、クリックすると選択肢が縦に並んで表示される入力欄です。 ドロップダウンとも呼ばれ、国の選択や年齢の範囲など、 あらかじめ決まった内容から一つを選ばせたいときによく使われます。 紙の申込書で、番号に丸を付ける代わりに一覧から一つ選ぶ感覚に近いです。

2. Reactでフォームを扱う基本の考え方

2. Reactでフォームを扱う基本の考え方
2. Reactでフォームを扱う基本の考え方

Reactでは、入力された内容を直接読み取るのではなく、 状態という仕組みを使って管理します。 状態とは、今の選択内容をメモしておく箱のようなものです。 セレクトボックスの場合は、 「今どの項目が選ばれているか」を文字として保存します。 これにより、画面と中身が常に同じ状態になります。

3. useStateを使った基本的な管理方法

3. useStateを使った基本的な管理方法
3. useStateを使った基本的な管理方法

ReactではuseStateを使って状態を作ります。 難しそうに見えますが、「選択結果を入れる箱を用意する」と考えると簡単です。 セレクトボックスが変更されたら、その箱の中身を入れ替えます。


import React, { useState } from "react";

function App() {
  const [fruit, setFruit] = useState("");

  return (
    <div>
      <select onChange={(e) => setFruit(e.target.value)}>
        <option value="">選んでください</option>
        <option value="りんご">りんご</option>
        <option value="みかん">みかん</option>
        <option value="ぶどう">ぶどう</option>
      </select>
    </div>
  );
}

export default App;
(プルダウンから選択できるようになります)

4. 選択した内容を画面に表示する

4. 選択した内容を画面に表示する
4. 選択した内容を画面に表示する

状態に保存された内容は、文字として画面に表示できます。 これは、申込書に書いた内容を横で確認するようなイメージです。 選択した結果がすぐに見えるので、利用者にも分かりやすくなります。


import React, { useState } from "react";

function App() {
  const [city, setCity] = useState("");

  return (
    <div>
      <select onChange={(e) => setCity(e.target.value)}>
        <option value="">都市を選択</option>
        <option value="東京">東京</option>
        <option value="大阪">大阪</option>
        <option value="名古屋">名古屋</option>
      </select>
      <p>選択中:{city}</p>
    </div>
  );
}

export default App;
(選んだ都市名が下に表示されます)

5. 初期値を設定して最初から選択する

5. 初期値を設定して最初から選択する
5. 初期値を設定して最初から選択する

セレクトボックスは、最初から一つ選ばれた状態にすることもできます。 これは、よく使われる選択肢をあらかじめ決めておくような場面です。 useStateの最初の値を設定することで実現できます。


import React, { useState } from "react";

function App() {
  const [job, setJob] = useState("学生");

  return (
    <div>
      <select value={job} onChange={(e) => setJob(e.target.value)}>
        <option value="学生">学生</option>
        <option value="会社員">会社員</option>
        <option value="自営業">自営業</option>
      </select>
    </div>
  );
}

export default App;
(最初から「学生」が選ばれています)

6. value属性で状態と画面を結び付ける

6. value属性で状態と画面を結び付ける
6. value属性で状態と画面を結び付ける

セレクトボックスでは、valueという設定が重要です。 valueを状態と結び付けることで、 今どれが選ばれているかをReactが正しく判断できます。 これにより、画面と中のデータがずれるのを防げます。

7. 初心者がよく間違えるポイント

7. 初心者がよく間違えるポイント
7. 初心者がよく間違えるポイント

よくある失敗は、状態を使わずに選択結果を扱おうとすることです。 それでは、画面が更新されたときに内容が分からなくなります。 Reactでは、セレクトボックスも必ず状態で管理するのが基本です。 「選択結果は状態に保存する」と覚えておくと安心です。

カテゴリの一覧へ
新着記事
New1
React
React Context APIのレンダリング問題を解決!初心者でもわかるパフォーマンス最適化ガイド
New2
React
ReactのFetch APIでエラー処理を理解しよう!初心者でも安心のやさしい解説
New3
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
New4
Next.js
Next.js Pages RouterでのSSG(getStaticProps)完全解説!初心者でもわかる静的サイト生成の仕組み
人気記事
No.1
Java&Spring記事人気No1
React
Reactの子コンポーネントから親コンポーネントへデータを渡す方法を徹底解説!初心者にもわかるReactのイベントとデータの流れ
No.2
Java&Spring記事人気No2
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.3
Java&Spring記事人気No3
React
ReactのContext APIとReduxの違いを初心者向けに徹底比較!どちらを使うべきか完全解説
No.4
Java&Spring記事人気No4
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.5
Java&Spring記事人気No5
React
React(TypeScript)で学ぶStateの型推論と型指定の違い!型安全なState管理を初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
React
ReactのState管理ベストプラクティス!初心者でもわかる再レンダリング最適化の考え方
No.7
Java&Spring記事人気No7
Next.js
Next.jsのServer ComponentsとClient Componentsの通信方法を完全解説!props渡しの基本と使い方
No.8
Java&Spring記事人気No8
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介