Поле Formik не очищается после отправки формы

#reactjs #forms #formik

#reactjs #формы #formik

Вопрос:

Итак, у меня есть компонент, который использует formik и имеет дочерний компонент для обновления одного из полей для него.

Дочерний компонент :

  this.props.formik.setFieldValue("keywords", target.value, false);
  

Это отлично работает для получения обновленного значения, но после отправки формы я хочу очистить все поля. Но каким-то образом значение для этого поля сохраняется.

Я пытался

  • Resetform
  • setFieldValue("keywords", '', false);
  • values.keywords = '' в событии onSubmit

и ни одно из них не работает

Ответ №1:

В реквизите onSubmit, который возвращается из <Formik /> , вы получаете значения и действия, связанные с этими значениями. Вызов Reset actions.resetForm() внутри этого возврата должен решить вашу проблему.

 onSubmit = {
    (v: IRegisterFormValues, a: FormikActions<IRegisterFormValues> ) => {
        AuthService.register(v.email).then(
            res => {
                a.resetForm()
            }
        )
    }
}