ReactはUIコンポーネントを簡単に作れるフレームワークです。今回はその中でもフォームのUIコンポーネントであるラジオボタンの作り方を解説します。

ラジオボタンとは

ラジオボタンは、複数の選択肢から1つだけを選ぶことができるUIコンポーネントです。HTMLの<input type=”radio”>要素で実装されます。

Reactでのラジオボタンの実装方法

Reactでラジオボタンを作るためには、状態管理が必要です。ラジオボタンを選択した際に、その値をReactの状態として保持する必要があります。

以下のように、useStateフックを使用して状態を管理します。

import React, { useState } from "react";

function RadioButtons() {
  const [selectedValue, setSelectedValue] = useState("");

  const handleChange = (event) => {
    setSelectedValue(event.target.value);
  };

  return (
    <div>
      <label>
        <input
          type="radio"
          value="option1"
          checked={selectedValue === "option1"}
          onChange={handleChange}
        />
        Option 1
      </label>
      <label>
        <input
          type="radio"
          value="option2"
          checked={selectedValue === "option2"}
          onChange={handleChange}
        />
        Option 2
      </label>
      <label>
        <input
          type="radio"
          value="option3"
          checked={selectedValue === "option3"}
          onChange={handleChange}
        />
        Option 3
      </label>
    </div>
  );
}

export default RadioButtons;

このコードでは、useStateフックを使用してselectedValueという状態を定義し、その初期値を空文字列としています。handleChange関数は、ラジオボタンが選択された際に実行され、その値をselectedValueに設定します。そして、input要素のchecked属性を使用して、選択されたラジオボタンをマークします。

ラジオボタンのデザインをカスタマイズする方法

ラジオボタンのデザインは、ブラウザによって異なります。デザインをカスタマイズするためには、CSSを使用する必要があります。

以下のように、ラジオボタンに適用するCSSを定義します。

input[type="radio"] {
  appearance: none;
  width: 20px;
  height: 20px;
  border: 2px solid #ccc;
  border-radius: 50%;
  outline: none;
  transition: border-color 0.2s;
}

input[type="radio"]:checked {
  border-color: #61dafb;
}

このCSSでは、ラジオボタンの外観を変更しています。appearanceプロパティをnoneに設定することで、ブラウザのデフォルトの外観を消しています。その後、width、height、border-radius、outline、transitionプロパティを使用して、ラジオボタンの大きさ、形、枠線の色などを変更しています。そして、input[type=”radio”]:checkedセレクタを使用して、選択されたラジオボタンの枠線の色を変更しています。

まとめ

Reactでラジオボタンを作るためには、useStateフックを使用して状態を管理し、input要素のchecked属性を使用して選択されたラジオボタンをマークします。デザインをカスタマイズするためには、CSSを使用します。これらの要素を組み合わせて、簡単に使えるラジオボタンを作ることができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です