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)
が呼び出されていることを確認してください。