-
フォームの登録処理: React Hook Formを使用してフォームを作成している場合、適切な登録処理が必要です。テキストエリアの値がundefinedになる場合、おそらく登録処理が正しく実装されていない可能性があります。以下の例を参考にしてください。
import { useForm } from 'react-hook-form'; function MyForm() { const { register, handleSubmit } = useForm(); const onSubmit = (data) => { console.log(data); }; return ( <form onSubmit={handleSubmit(onSubmit)}> <textarea {...register('textareaName')} /> <button type="submit">Submit</button> </form> ); }
登録処理として
handleSubmit
関数を使用し、その中でデータを処理する関数を定義します。ここではonSubmit
関数がデータをコンソールに出力しています。 -
必須フィールドの設定: もう一つの可能性として、テキストエリアが必須フィールドである場合、適切なバリデーションルールを設定する必要があります。以下の例を参考にしてください。
import { useForm } from 'react-hook-form'; function MyForm() { const { register, handleSubmit, formState: { errors } } = useForm(); const onSubmit = (data) => { console.log(data); }; return ( <form onSubmit={handleSubmit(onSubmit)}> <textarea {...register('textareaName', { required: true })} /> {errors.textareaName && <span>This field is required.</span>} <button type="submit">Submit</button> </form> ); }
required: true
をバリデーションルールに追加し、必須フィールドとして設定します。エラーメッセージを表示するために、formState.errors
オブジェクトを使用しています。
これらの方法を試してみてください。React Hook Formでテキストエリアがundefinedになるエラーが解決されるはずです。