id: form-submission title: Form 提交
custom_edit_url: https://github.com/jaredpalmer/formik/edit/master/docs/guides/form-submission.md
提交阶段
要在 Formik 中提交表单,您需要以某种方式触发所提供的handleSubmit(e)或submitFormprop。当您调用其中任何一种方法时,Formik 每次都执行以下操作 (伪代码) :
预提交
- 触摸所有字段
- 设isSubmitting为true
- 增submitCount+ 1
验证
- 设isValidating为true
- 运行所有字段级验证,validate,和validationSchema异步并深度合并结果
- 有什么错误吗?- 有:中止提交。设isValidating为false,设定errors,设定isSubmitting为false
- 没有:设置isValidating为false,进入“提交”
 
- 有:中止提交。设
提交
- 继续运行您的提交处理程序(即onSubmit要么handleSubmit)
- 你调用setSubmitting(false)在你的处理程序中完成循环
经常问的问题
如何确定提交处理程序是否正在执行?
如果isValidating是false,和isSubmitting是true。
为什么提交前,Formik 会触摸所有字段??
通常的做法是只在访问过(a.k.a“触摸”)的 UI 中显示输入错误。在提交表单之前,Formik 会触及所有字段,以便所有可能已隐藏的错误现在看得见。如何防止重复提交?
如果isSubmitting是true,禁用触发提交的任何内容。
我如何知道我的表单在提交前是何时验证的??
如果isValidating是true,和isSubmitting是true。
 
                         
                                

