React onChange ドロップダウン解説
React JS でのドロップダウンの onChange イベント
React JS でドロップダウンの選択値が変更されたときに、特定の処理を実行したい場合、onChange イベントを使用します。
基本的な構造
import React, { useState } from 'react';
function MyDropdown() {
const [selectedValue, setSelectedValue] = useState('');
const handleChange = (event) => {
setSelectedValue(event.target.value);
// ここで選択値に基づいて処理を実行
};
return (
<select value={selectedValue} onChange={handleChange}>
<option value="">選択してください</option>
<option value="option1">オプション1</option>
<option value="option2">オプション2</option>
</select>
);
}
解説
- useState フックを使用して、ドロップダウンの選択値を管理する状態変数
selectedValue
を作成します。 - handleChange 関数を定義して、
onChange
イベントのハンドラーとして使用します。 - イベントオブジェクト
event
を受け取り、event.target.value
で選択された値を取得します。 setSelectedValue
関数を呼び出して、状態変数を更新し、再レンダリングをトリガーします。onChange
属性をドロップダウン要素に設定し、handleChange
関数を指定します。value
属性をドロップダウン要素に設定し、現在の選択値を反映します。
処理の追加
handleChange
関数の内部で、選択値に基づいて任意の処理を実行できます。例えば、選択値に応じてコンポーネントの表示を切り替えたり、APIリクエストを送信したりすることができます。
const handleChange = (event) => {
setSelectedValue(event.target.value);
if (event.target.value === 'option1') {
// オプション1が選択された場合の処理
} else if (event.target.value === 'option2') {
// オプション2が選択された場合の処理
}
};
注意
value
属性は、各選択肢の固有の値を設定するために使用されます。- ドロップダウンの選択肢は、
option
要素を使用して定義します。
import React, { useState } from 'react';
function MyDropdown() {
const [selectedValue, setSelectedValue] = useState('');
const handleChange = (event) => {
setSelectedValue(event.target.value);
// ここで選択値に基づいて処理を実行
};
return (
<select value={selectedValue} onChange={handleChange}>
<option value="">選択してください</option>
<option value="option1">オプション1</option>
<option value="option2">オプション2</option>
</select>
);
}
コード解説
const handleChange = (event) => {
setSelectedValue(event.target.value);
if (event.target.value === 'option1') {
// オプション1が選択された場合の処理
} else if (event.target.value === 'option2') {
// オプション2が選択された場合の処理
}
};
Controlled Components
- 以下は、controlled components を使用した例です。
- controlled components では、ドロップダウンの選択値を状態変数で管理し、その状態変数をドロップダウン要素の
value
属性にバインドします。 - onChange イベントを使用する従来の方法に加えて、controlled components を使用することもできます。
import React, { useState } from 'react';
function MyDropdown() {
const [selectedValue, setSelectedValue] = useState('');
const handleChange = (event) => {
setSelectedValue(event.target.value);
};
return (
<select value={selectedValue} onChange={handleChange}>
<opt ion value="">選択してください</option>
<option value="option1">オプション1</option>
<option value="option2">オプション2</option>
</select>
);
}
Custom Hooks
- 以下は、custom hook を使用した例です。
- custom hooks を作成して、ドロップダウンの選択値の管理と処理をカプセル化することができます。
import { useState } from 'react';
function useDropdown(initialSelectedValue) {
const [selectedValue, setSelectedValue] = useState(initialSelectedValue);
const handleChange = (event) => {
setSelectedValue(event.target.value);
};
return [selectedValue, handleChange];
}
function MyDropdown() {
const [selectedValue, handleChange] = useDropdown('');
return (
<select value={selectedValue} onChange={handleChange}>
<option value="">選択してください</option>
<option value="option1">オプション1</option>
<option value="option2">オプション2</option>
</select>
);
}
Third-Party Libraries
- 例えば、Material-UI やSemantic UIなどのライブラリには、ドロップダウンコンポーネントが提供されています。
- third-party libraries を使用して、ドロップダウンの機能を拡張することができます。
javascript reactjs