【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

【React】inputに入力された値をリアルタイムで取得する方法

本記事では、Reactでinputに入力された値をリアルタイムで取得する方法について解説しています。

Reactの学習におすすめ書籍
モダンJavaScriptの基本から始める React実践の教科書
総合評価
( 5 )
メリット
  • JavaScriptの基礎から始めてReactの機能を一通り学べる
  • 実務で必要となる知識を意識しながら学習を進められる
  • 現場のシチュエーションベースのストーリーで技術解説
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

サンプルコード

下記のコードは、テキストフォームに入力された値をリアルタイムで表示させるサンプルコードです。このサンプルコードを用いて解説していきます。

import { useState } from "react";

function App() {
  const [val, setVal] = useState("");

  const onInputValueChanged = (e) => setVal(e.target.value);
  return (
    <>
      <p>入力値:{val}</p>
      <input type="text" value={val} onChange={onInputValueChanged} />
    </>
  );
}

export default App;

useStateの準備

useStateを使用したいので、reactからimportします。

import { useState } from "react";

useStateの値はテキストフォームで入力された値を保持する役割を持つので、初期値には空文字を指定します。もし、テキストフォームに最初から文字が入力されている状態にしたい場合は、初期値に任意の文字列を指定してください。

const [val, setVal] = useState("");

属性の設定

<input />には必ず2つの属性を指定する必要があります。

1つ目がテキストフォームに入力された値をセットするvalue属性です。この属性値にはuseStateで渡された値(val)を指定します。

<input type="text" value={val} />

2つ目がテキストフォームに入力された時に発火するchangeイベントです。Reactでは、changeイベントはonChangeと記述します。属性値にはchangeイベントが発火した時に実行させたい関数を指定します。この関数内の処理は次の見出しで解説します。

<input type="text" onChange={onInputValueChanged} />

changeイベントが発火した時の関数を定義する

changeイベントが発火した時の関数を定義します。この関数で行いたい処理は入力された値をuseStateにセットし再レンダリングさせることです。

入力された値を取得するには「引数.target.value」を使用します。後は、取得した値をそのままuseStateの更新用関数に渡してあげれば、テキストフォームに値が入力されるたびにuseStateが更新され再レンダリングされます。

const onInputValueChanged = (e) => setVal(e.target.value);

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次