Skip to main content

Overview

reatomForm creates a reactive form with built-in validation, submit handling, and comprehensive field management. It wraps reatomFieldSet and adds form-level features like submit actions, schema validation, and submitted state tracking.

Type Signature

Parameters

InitState | ((name: string) => InitState)
required
Initial form state or factory function. Can include:
  • Primitive values (automatically converted to reatomField)
  • reatomField instances with custom options
  • reatomFieldArray instances for dynamic lists
  • Nested objects for complex form structures
FormOptions
Form configuration options

Return Value

FormAtom<InitState, SchemaState, SubmitReturn, SubmitParams>
Form atom with the following properties:

Examples

Basic Form

Form with Schema Validation

Field-Level Validation

Dynamic Field Arrays

Submit Flow

Submit with Custom Parameters

Autofocus First Error Field

Nested Forms

Submit Flow

When submit() is called, the following sequence occurs:
  1. Field Validation: All fields in fieldsList have their validation triggered
  2. Schema Validation: If a schema is provided, it validates the entire form state
  3. Custom Validation: The validateBeforeSubmit callback runs (if provided)
  4. Submit Handler: The onSubmit callback executes with validated state
  5. Submitted State: The submitted atom is set to true
  6. Reset (optional): If resetOnSubmit is true, the form resets to initial state
If any step throws an error, the flow stops and the error is available via submit.error().