Задать вопрос
@DaveGarrow

Почему Formik вызывает рекурсию при инициализации?

Есть компонент, в котором присутствует форма
<Formik
    onSubmit={...}
    enableReinitialize
    initialValues={oldValues}
>
    <CurrentForm />
</Formik>;


И сам currentForm
function CurrentForm() {
    const { values, setFieldValue, handleSubmit } = useFormikContext();
    return (
      <div onSubmit={handleSubmit}>
          <Input1 />
          <Input2 />
          <Input3 />
          <Button />
      </div>
    );
}


После ввода всех значений, я беру values и сохраняю все значения в redux. Затем, мне в этой же форме, нужно проставить другие значения из Redux. Для этого нужно поменять initialValues. Соответственно oldValues хочу сменить на новые newValues. Тогда нужно сделать переинит Formika, но простановка enableReinitialize при новом рендере компонента вызывает рекурсию(

В чем может быть причина или есть варианты как избежать данной проблемы?
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Первое что бросается в глаза, это то что за место тега form используется div. Замените, т.к. это ошибка
function CurrentForm() {
    const { values, setFieldValue, handleSubmit } = useFormikContext();
    return (
      <form onSubmit={handleSubmit}>
          <Input1 />
          <Input2 />
          <Input3 />
          <Button />
      </form >
    );
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽