要在 Formik 中提交表单,您需要以某种方式触发提供的 handleSubmit(e)
或 submitForm
属性。每次调用其中任何一个方法时,Formik 都会执行以下操作(伪代码)
initialValues
,并且应始终指定。请参阅 #445isSubmitting
设置为 true
submitCount
加 1isValidating
设置为 true
validate
和 validationSchema
,并深度合并结果isValidating
设置为 false
,设置 errors
,将 isSubmitting
设置为 false
isValidating
设置为 false
,继续执行“提交”onSubmit
或 handleSubmit
)setSubmitting
设置为 false
setSubmitting(false)
以完成循环如果 isValidating
为 false
且 isSubmitting
为 true
。
通常的做法是仅在访问过输入(又名“touched”)时在 UI 中显示输入的错误。在提交表单之前,Formik 会触碰所有字段,以便所有可能隐藏的错误现在都可见。
如果 isSubmitting
为 true
,则禁用触发提交的任何内容。
如果 isValidating
为 true
且 isSubmitting
为 true
。
如果提交处理程序不返回 Promise,请确保在处理程序的末尾调用 setSubmitting(false)
。