Formikでフォームを送信するには、提供されたhandleSubmit(e)またはsubmitFormプロップを何らかの方法で呼び出す必要があります。これらのメソッドのいずれかを呼び出すと、Formikは毎回以下の(擬似コード)を実行します。
initialValuesは必須であり、常に指定する必要があります。#445を参照してください。isSubmittingをtrueに設定します。submitCountを1インクリメントします。isValidatingを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)が呼び出されていることを確認してください。