Reactで入力値を取得する
ReactJSでクリック時に入力テキストの値を取得する方法
JavaScript
import React, { useState } from 'react';
function MyComponent() {
const [inputValue, setInputValue] = useState('');
const handleClick = () => {
console.log('入力値:', inputValue);
};
return (
<div>
<input type="text" value={inputValue} onChange={(e) => setInputValue(e.target.value)} />
<button onClick={handleClic k}>値を取得</button>
</div>
);
}
export default MyComponent;
解説
- useStateフック
useState
フックを使用して、入力テキストの値を管理する状態変数inputValue
を定義します。初期値は空文字列です。 - handleClick関数
クリックイベントが発生したときに実行される関数です。console.log
を使用して、inputValue
の値を出力します。 - 入力テキスト
input
要素を使用して、ユーザーがテキストを入力できるフィールドを作成します。value
プロパティ:inputValue
の状態変数の値をバインドします。onChange
イベントハンドラー: 入力値が変更されたときに実行され、setInputValue
関数を使用してinputValue
の状態を更新します。
- ボタン
button
要素を使用して、クリック時にhandleClick
関数を呼び出すボタンを作成します。
使い方
- このコードをReactコンポーネントに貼り付けます。
- ブラウザでコンポーネントを表示します。
- 入力テキストに値を入力します。
- ボタンをクリックすると、コンソールに入力値が出力されます。
ポイント
onClick
イベントハンドラーを使用して、ボタンをクリックしたときに関数を呼び出します。onChange
イベントハンドラーを使用して、入力値が変更されたときに状態を更新します。useState
フックを使用して、入力テキストの値を管理することで、入力値が変更されたときにコンポーネントを再レンダリングすることができます。
日本語でのコード解説
import React, { useState } from 'react';
function MyComponent() {
const [inputValue, setInputValue] = useState('');
const handleClick = () => {
console.log('入力値:', inputValue);
};
return (
<div>
<input type="text" value={inputValue} onChange={(e) => setInputValue(e.target.value)} />
<button onClick={handleClic k}>値を取得</button>
</div>
);
}
export default MyComponent;
注意
- このコードは、入力テキストの値をコンソールに出力するだけのシンプルな例です。実際のアプリケーションでは、取得した入力値を他の処理に利用する必要があります。
import React, { useState, useRef } from 'react';
function MyComponent() {
const inputRef = useRef(null);
const handleClick = () => {
const inputValue = inputRef.current.value;
console.log('入力値:', inputValue);
};
return (
<div>
<input type="text" ref={inputRef} />
<button onClick={handleClick}>値を取得</button>
</div>
);
}
export default MyComponent;
handleClick
関数で、inputRef.current.value
を使用して入力値を取得します。useRef
フックを使用して、入力要素への参照を取得します。
イベントハンドラーの直接使用
import React, { useState } from 'react';
function MyComponent() {
const [inputValue, setInputValue] = useState('');
const handleClick = (event) => {
const inputValue = event.target.value;
console.log('入力値:', inputValue);
};
return (
<div>
<input type="text" value={inputValue} onChange={(e) => setInputValue(e.target.value)} />
<button onClick={handleClic k}>値を取得</button>
</div>
);
}
export default MyComponent;
handleClick
関数の引数にevent
オブジェクトを受け取り、event.target.value
を使用して入力値を取得します。
カスタムフックの使用
import React, { useState, useRef } from 'react';
function useInputValue() {
const inputRef = useRef(null);
const [inputValue, setInputValue] = useState('');
const getInputValue = () => inputRef.current.value;
return [inputValue, setInputValue, getInputValue];
}
function MyComponent() {
const [inputValue, setInputValue, getInputValue] = useInputValue();
const handleClick = () => {
const inputValue = getInputValue();
console.log('入力値:', inputValue);
};
return (
<div>
<input type="text" ref={inputRef} value={inputValue} onChange={(e) => setInputValue(e.target.value)} />
<button onClick={handleClick}>値を取得</button>
</div>
);
}
export default MyComponent;
getInputValue
関数を使用して、入力値を取得します。- カスタムフック
useInputValue
を使用して、入力値の管理と取得をカプセル化します。
選択基準
- カスタムフック
カスタムフックを使用する場合、入力値の管理と取得を再利用可能なコードとしてカプセル化できます。 - 参照
ref
を使用する場合、入力要素への直接アクセスが可能になります。 - 状態管理
useState
を使用する場合、入力値が変更されたときにコンポーネントが再レンダリングされます。
reactjs