概要
- useStateを利用してフォームの変更を反映する処理を追加したら画面でエラーが発生しました。
- textのonChange関数の定義でエラーが発生したので対応の手順をまとめました。
開発環境
- React 19.0.0-rc-69d4b800-20241021
- Next.js 15.0.1
エラー内容
- 次のソースのようにフォームのtextの内容を下のpタグに表示するだけのページです。
- textの変更を反映させるためにonChange関数を定義しましたが、
その引数eが型のエラーが発生しました。
- ソースとエラー内容は次の通りです。
page.tsx
"use client"
import { useState } from 'react'
export default function Test() {
// テスト用string
const [test, setTest] = useState("test")
// 入力変更を反映させる
const handleInputForm = e => {
setTest(e.target.value)
}
// textとpのみの簡単なフォーム
return (
<form>
<input id="test" name="test" type="text" onChange={handleInputForm} value={test}/>
<p>{test}</p>
</form>
);
}
Error
Parameter 'e' implicitly has an 'any' type.
参考
対応
React.ChangeEvent<HTMLInputElement>型に対応
- eを()で囲み、型はReact.ChangeEvent<HTMLInputElement>で定義します。
page.tsx
"use client"
import { useState } from 'react'
export default function Test() {
// テスト用string
const [test, setTest] = useState("test")
// 入力変更を反映させる
// 1. eを()で囲み、型はReact.ChangeEvent<HTMLInputElement>で定義します。
const handleInputForm = (e :React.ChangeEvent<HTMLInputElement>) => {
setTest(e.target.value)
}
// textとpのみの簡単なフォーム
return (
<form>
<input id="test" name="test" type="text" onChange={handleInputForm} value={test}/>
<p>{test}</p>
</form>
);
}
- これでエラーなくフォームが正常に動作するようになりました。