Для правильной привязки input к useForm() в React, следуйте следующим шагам:
1. Установите библиотеку react-hook-form в свой проект с помощью npm или yarn:
npm install react-hook-form
или
yarn add react-hook-form
2. Импортируйте необходимые хуки из библиотеки и создайте объект формы с помощью useForm():
import React from "react"; import { useForm } from "react-hook-form"; function MyFormComponent() { const { register, handleSubmit, formState: { errors } } = useForm(); const onSubmit = (formData) => { // Обработка отправки формы }; return ( <form onSubmit={handleSubmit(onSubmit)}> {/* Здесь размещаем поля ввода */} </form> ); }
3. Добавьте поля ввода и привяжите их к useForm() с помощью register():
<input {...register("fieldName")} />
где "fieldName" - это имя поля, которое соответствует ключу в объекте формы formData.
4. Можно использовать различные опции регистрации входных данных, чтобы добавить валидацию, правила заполнения и другие функции:
<input {...register("fieldName", { required: true, minLength: 3 })} />
В данном примере поле "fieldName" требует, чтобы пользователь заполнил его (required: true) и его значение содержало минимум 3 символа (minLength: 3). Если введенное значение не удовлетворяет этим правилам, то соответствующие ошибки будут храниться в объекте ошибок errors.
5. Для вывода сообщений об ошибках нужно проверить свойство errors и отобразить соответствующие сообщения:
<input {...register("fieldName")} /> {errors.fieldName && <p>{errors.fieldName.message}</p>}
где fieldName - это имя поля, для которого необходимо отобразить сообщение об ошибке.
6. Наконец, добавьте кнопку отправки формы и функцию handleSubmit для обработки отправки формы:
<form onSubmit={handleSubmit(onSubmit)}> {/* Поля ввода */} <button type="submit">Отправить</button> </form>
Когда пользователь нажимает на кнопку "Отправить", функция onSubmit будет вызвана, и вы получите значения формы в объекте formData. Вы можете использовать эти значения для перенаправления, отправки запроса на сервер или выполнения других действий, необходимых для вашего приложения.