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

Reactのチェックボックス入力を完全解説!初心者でもわかるReactフォーム処理

チェックボックスの入力を管理する方法
チェックボックスの入力を管理する方法

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

生徒

「Reactでチェックボックスを使いたいんですが、どうやって値を管理するんですか?」

先生

「チェックボックスは、オンかオフを管理するフォーム部品ですね。Reactでは状態を使って管理します。」

生徒

「状態っていうのが、まだよくわからなくて……」

先生

「大丈夫です。紙のメモにチェックが入ったかを書き留める感覚で考えてみましょう。」

1. チェックボックスとは何かを理解しよう

1. チェックボックスとは何かを理解しよう
1. チェックボックスとは何かを理解しよう

チェックボックスは、四角い枠をクリックしてオンとオフを切り替える入力方法です。 パソコンを触ったことがない人でも、「同意する」「受け取る」などの画面で見たことがあると思います。 Reactでは、このオンかオフの状態をプログラムの中で覚えておく必要があります。 これを「状態管理」と呼びます。 状態とは、今どうなっているかを記録する箱のようなものです。

2. Reactでフォーム処理をする基本の考え方

2. Reactでフォーム処理をする基本の考え方
2. Reactでフォーム処理をする基本の考え方

Reactのフォーム処理では、入力された内容をそのまま使うのではなく、 一度「状態」に保存してから使います。 これは、メモ帳に書いてから見返すのと同じです。 チェックボックスの場合は、「チェックされているかどうか」を true(はい)かfalse(いいえ)で管理します。 この考え方を理解すると、他の入力フォームも簡単になります。

3. useStateを使ってチェック状態を管理する

3. useStateを使ってチェック状態を管理する
3. useStateを使ってチェック状態を管理する

Reactでは、useStateという仕組みを使って状態を管理します。 難しそうな名前ですが、「覚えておくための箱」を作るものだと考えてください。 チェックボックスが押されたら、その箱の中身を書き換えます。


import React, { useState } from "react";

function App() {
  const [checked, setChecked] = useState(false);

  return (
    <div>
      <label>
        <input
          type="checkbox"
          checked={checked}
          onChange={() => setChecked(!checked)}
        />
        利用規約に同意する
      </label>
    </div>
  );
}

export default App;
(チェックボックスを押すたびに、オンとオフが切り替わります)

4. チェック状態を画面に表示してみよう

4. チェック状態を画面に表示してみよう
4. チェック状態を画面に表示してみよう

状態は、画面に文字として表示することもできます。 これにより、今チェックされているかが一目でわかります。 信号機のランプが光っているか確認するようなイメージです。


import React, { useState } from "react";

function App() {
  const [checked, setChecked] = useState(false);

  return (
    <div>
      <input
        type="checkbox"
        checked={checked}
        onChange={() => setChecked(!checked)}
      />
      <p>{checked ? "チェックされています" : "チェックされていません"}</p>
    </div>
  );
}

export default App;
(チェックを入れると文字が変わって表示されます)

5. 複数のチェックボックスを扱う方法

5. 複数のチェックボックスを扱う方法
5. 複数のチェックボックスを扱う方法

複数のチェックボックスを使う場合は、それぞれの状態を別々に管理します。 これは、付箋を何枚も使ってメモするのと同じ考え方です。 どれがチェックされたかを、個別に覚えておくことが大切です。


import React, { useState } from "react";

function App() {
  const [apple, setApple] = useState(false);
  const [banana, setBanana] = useState(false);

  return (
    <div>
      <label>
        <input type="checkbox" checked={apple} onChange={() => setApple(!apple)} />
        りんご
      </label>
      <br />
      <label>
        <input type="checkbox" checked={banana} onChange={() => setBanana(!banana)} />
        バナナ
      </label>
    </div>
  );
}

export default App;
(それぞれのチェックボックスが独立して動きます)

6. 配列を使ってまとめて管理する考え方

6. 配列を使ってまとめて管理する考え方
6. 配列を使ってまとめて管理する考え方

チェックボックスが増えてきた場合は、配列という仕組みを使います。 配列とは、同じ種類のものを並べて入れる箱です。 買い物リストを一枚の紙にまとめる感覚で考えると理解しやすくなります。


import React, { useState } from "react";

function App() {
  const [items, setItems] = useState([]);

  const toggleItem = (item) => {
    setItems(
      items.includes(item)
        ? items.filter((i) => i !== item)
        : [...items, item]
    );
  };

  return (
    <div>
      <label>
        <input type="checkbox" onChange={() => toggleItem("りんご")} />
        りんご
      </label>
      <label>
        <input type="checkbox" onChange={() => toggleItem("みかん")} />
        みかん
      </label>
    </div>
  );
}

export default App;
(チェックした項目だけが記録されます)

7. チェックボックス処理でよくあるつまずきポイント

7. チェックボックス処理でよくあるつまずきポイント
7. チェックボックス処理でよくあるつまずきポイント

初心者がよく間違えるのは、チェックされたかどうかを直接取りに行こうとすることです。 Reactでは、必ず状態を通して管理します。 これを守ることで、画面とデータがずれなくなります。 最初は遠回りに見えますが、慣れるととても安心できる仕組みです。

カテゴリの一覧へ
新着記事
New1
React
ReactのProps Drillingとは?コンテキストAPIで解決する方法を初心者向けに徹底解説
New2
React
Reactのイベントオブジェクト(event)の使い方とよく使うプロパティを初心者向けに解説
New3
React
ReactのContext APIでダークモードを実装!テーマ切り替えの方法を初心者向けに完全解説
New4
React
Reactにおけるイベント処理の基本を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.2
Java&Spring記事人気No2
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.3
Java&Spring記事人気No3
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.4
Java&Spring記事人気No4
React
React(TypeScript)で学ぶStateの型推論と型指定の違い!型安全なState管理を初心者向けにやさしく解説
No.5
Java&Spring記事人気No5
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.6
Java&Spring記事人気No6
Next.js
Next.jsのRoute Groupの使い方を完全ガイド!App Routerでフォルダ構成を整理する方法
No.7
Java&Spring記事人気No7
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.8
Java&Spring記事人気No8
React
Reactでネストしたコンポーネントにデータを渡す方法を完全解説!Context APIで深い階層も簡単に