useForm
フックのhandleSubmit
関数を使用する方法:
import { useForm } from 'react-hook-form';
const MyForm = () => {
const { handleSubmit } = useForm();
const onSubmit = (data) => {
// フォームのデータを処理するロジックをここに書く
};
const handleExternalSubmit = () => {
handleSubmit(onSubmit)();
};
return (
<div>
{/* フォームの内容をここに記述 */}
<button onClick={handleExternalSubmit}>外部から送信</button>
</div>
);
};
この例では、handleSubmit
関数を取得し、外部からの送信をトリガーするために新しい関数handleExternalSubmit
を作成しています。handleExternalSubmit
は、handleSubmit
を呼び出すことでフォームのバリデーションとデータの送信をトリガーします。
useForm
フックのregister
関数を使用する方法:
import { useForm } from 'react-hook-form';
const MyForm = () => {
const { register, getValues } = useForm();
const onSubmit = (data) => {
// フォームのデータを処理するロジックをここに書く
};
const handleExternalSubmit = () => {
const formData = getValues();
onSubmit(formData);
};
return (
<div>
{/* フォームの内容をここに記述 */}
<button onClick={handleExternalSubmit}>外部から送信</button>
</div>
);
};
この例では、getValues
関数を使用してフォームの現在の値を取得し、それを外部のonSubmit
関数に渡しています。これにより、フォームのバリデーションを実行せずにデータの送信が可能になります。
これらはReact Hook Formでフォーム外部からの送信を行うための2つの一般的な方法です。必要に応じて、これらの例をカスタマイズして使用することができます。