Skip to content

FormEffectHooks

Form-level side-effect hooks for subscribing to Form lifecycle events

Description

FormEffectHooks are used inside the Form effects function to listen for form-level lifecycle events. Each hook corresponds to a lifecycle type in LifeCycleTypes.

All Form Effect Hooks

Lifecycle

HookTrigger
onFormInitForm initialized
onFormMountForm mounted
onFormUnmountForm unmounted

Value Changes

HookTrigger
onFormValuesChangeForm values changed
onFormInitialValuesChangeInitial values changed
onFormInputChangeForm input changed

Submit

HookTrigger
onFormSubmitForm submit
onFormSubmitStartSubmit started
onFormSubmittingSubmitting in progress
onFormSubmitEndSubmit ended
onFormSubmitSuccessSubmit succeeded
onFormSubmitFailedSubmit failed

Submit Validation

HookTrigger
onFormSubmitValidateStartSubmit validation started
onFormSubmitValidateSuccessSubmit validation passed
onFormSubmitValidateFailedSubmit validation failed
onFormSubmitValidateEndSubmit validation ended

Validation

HookTrigger
onFormValidateStartValidation started
onFormValidatingValidating in progress
onFormValidateSuccessValidation passed
onFormValidateFailedValidation failed
onFormValidateEndValidation ended

Other

HookTrigger
onFormGraphChangeField graph changed
onFormLoadingLoading state changed
onFormResetForm reset

Usage

All form hooks follow a uniform signature:

txt
onFormXxx(callback: (form: Form) => void): void

Basic Usage

ts
import { createForm, onFormMount, onFormSubmit } from '@silver-formily/core'

const form = createForm({
  effects() {
    onFormMount((form) => {
      console.log('Form mounted')
    })

    onFormSubmit((form) => {
      console.log('Submitting:', form.values)
    })
  },
})

onFormReact

A special reactive side-effect that auto-tracks form state changes:

ts
onFormReact((form) => {
  // Auto-tracks all observable properties read from form
  console.log(form.values, form.valid)
})

Equivalent to onFormInit + autorun.