Динамические поля с useFieldArray
Добавляйте, удаляйте и меняйте порядок динамических полей формы с помощью хука useFieldArray.
«Динамические поля с useFieldArray» — бесплатный урок React Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения React Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс React Academy содержит 4 уроков всего.
Добро пожаловать
Что такое useFieldArray?
import { useFieldArray } from 'react-hook-form';
const { fields, append, remove } = useFieldArray({
control,
name: 'phoneNumbers',
});Настройка: control из useForm
const { register, control, handleSubmit } = useForm({
defaultValues: { phoneNumbers: [{ value: '' }] },
});Отображение полей
return fields.map((field, index) => (
<div key={field.id}>
<input
{...register(`phoneNumbers.${index}.value`)}
/>
<button onClick={() => remove(index)}>Remove</button>
</div>
));Добавление новых полей
<button onClick={() => append({ value: '' })}>
Add Phone Number
</button>Удаление полей
<button onClick={() => remove(index)}>Delete</button>Валидация минимального количества полей
const schema = z.object({
emails: z.array(z.object({ value: z.string().email() }))
.min(1, 'At least one email required'),
});Перестановка и перемещение полей
swap(0, 2); // swap first and third items
move(3, 0); // move item at index 3 to the topВложенный useFieldArray
Отправка данных массива
const onSubmit = (data) => {
console.log(data.phoneNumbers);
// [{ value: '555-1234' }, { value: '555-5678' }]
};Быстрая проверка
Итоги
Курс завершён
Часто задаваемые вопросы
Урок «Динамические поля с useFieldArray» бесплатный?
Да — полный текст урока «Динамические поля с useFieldArray» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс React Academy, подпишись на CoddyKit PRO. Курс React Academy содержит 4 уроков всего.
Чему я научусь в уроке «Динамические поля с useFieldArray»?
Добавляйте, удаляйте и меняйте порядок динамических полей формы с помощью хука useFieldArray. Ты практикуешь React Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать React Academy?
Предыдущий опыт не требуется. React Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Динамические поля с useFieldArray»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке React Academy?
Да. Каждый урок React Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Начало работы с React Hook Form
- Правила валидации и сообщения об ошибках
- Валидация схем с помощью Zod
- Динамические поля с useFieldArray