> Как реализовать динамическое добавление полей в формах с помощью Formik (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: ДиджиталСектор
Стек: React
> Пример ответа
Для реализации динамического добавления полей в Formik используется компонент FieldArray. Вот пример добавления полей для списка телефонов:
JSXimport { Formik, Form, Field, FieldArray } from 'formik';function PhoneForm() {return (<FormikinitialValues={{ phones: [''] }}onSubmit={values => console.log(values)}>{({ values }) => (<Form><FieldArray name="phones">{({ push, remove }) => (<div>{values.phones.map((phone, index) => (<div key={index}><Field name={`phones.${index}`} placeholder="Телефон" /><button type="button" onClick={() => remove(index)}>Удалить</button></div>))}<button type="button" onClick={() => push('')}>Добавить телефон</button></div>)}</FieldArray><button type="submit">Отправить</button></Form>)}</Formik>);}
Ключевые моменты:
FieldArrayпредоставляет методыpush,remove,insertдля управления массивом полей- Имена полей задаются через индекс:
phones.0,phones.1и т.д. - Для сложных объектов используйте вложенные пути:
contacts.${index}.name - Начальное значение массива задаётся в
initialValues - Можно комбинировать с валидацией через Yup, используя
yup.array().of(...)
> Похожие задачи по frontend
Какие технологии и версии React используются в проектах компании
Уровень: seniorКатегория: Технические вопросы
Компания: Sminex
Стек: React
Можно ли хранить данные в refs, которые не вызывают повторный рендер
Уровень: seniorКатегория: Технические вопросы
Компания: ДиджиталСектор
Стек: React
Что выделяет React среди других библиотек, что нравится и не нравится в работе с ним
Уровень: seniorКатегория: Технические вопросы
Компания: Точка
Стек: React
Зачем нужна обертка в виде объекта для setState в React
Уровень: seniorКатегория: Технические вопросы
Компания: Точка
Стек: React, TypeScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью