カテゴリ: 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で再利用可能なリスト表示コンポーネントを実装しよう!初心者でもわかるReactのコンポーネント分割
New2
React
ReactのPropsとStateのベストプラクティスを整理しよう!初心者でもわかる使い方ガイド
New3
Next.js
Next.jsのRoute Groupの使い方を完全ガイド!App Routerでフォルダ構成を整理する方法
New4
Next.js
Next.js App Routerのtemplate.tsxの役割を完全解説!初心者でも理解できるレイアウト管理の基本
人気記事
No.1
Java&Spring記事人気No1
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.3
Java&Spring記事人気No3
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.4
Java&Spring記事人気No4
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.5
Java&Spring記事人気No5
Next.js
Next.js Server Componentsのメリット・デメリットを完全解説!初心者でもわかるNext.jsの基本
No.6
Java&Spring記事人気No6
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
React
ReactでAxiosローディング状態を管理する方法を完全ガイド!初心者でもわかる非同期通信の基本
No.8
Java&Spring記事人気No8
React
ReactでuseStateを使ったオブジェクト・配列の扱い方完全ガイド!初心者でもわかるReactフック