要在 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
。
通常的做法是僅在輸入的欄位已被訪問(也稱為「已觸碰」)時才在 UI 中顯示其錯誤。 在提交表單之前,Formik 會觸碰所有欄位,以便所有可能隱藏的錯誤現在都可顯示。
如果 isSubmitting
為 true
,則停用任何觸發提交的操作。
如果 isValidating
為 true
且 isSubmitting
為 true
。
如果提交處理程式未返回 promise,請確保在處理程式結束時呼叫 setSubmitting(false)
。