TanStack
FormApi Reference

FormSubmitContext

Defined in: FormApi/FormApi.public.ts:99

Context passed to onSubmit after submission validation succeeds.

Example

ts
{
  // ...
  onSubmit: async ({ value, createValidationError }) => {
    const result = await saveUser(value)

    if (!result.ok) {
      return createValidationError(result.error)
    }
  },
}

Type Parameters

TFormData

TFormData

Library-managed. Do not specify explicitly.

TOutputs

TOutputs

Library-managed. Do not specify explicitly.

TFormErrorTypes

TFormErrorTypes extends FormErrorTypes

Library-managed. Do not specify explicitly.

Properties

createValidationError

ts
createValidationError: CreateValidationErrorFn<TFormData>;

Defined in: FormApi/FormApi.public.ts:148

Creates a validation error that can be returned from onSubmit.

Return the created error from onSubmit to add its form- and field-level errors to validation state.

Example

ts
{
  // ...
  onSubmit: async ({ value, createValidationError }) => {
    const result = await saveUser(value)

    if (result.status === 409) {
      return createValidationError({
        form: 'A user with this email already exists',
        fields: {},
      })
    }
  },
}

formApi

ts
formApi: FormApi<TFormData, TFormErrorTypes>;

Defined in: FormApi/FormApi.public.ts:107

The form API handling this submission.


parseIssues

ts
parseIssues: ParseSubmitIssuesFn<TFormData>;

Defined in: FormApi/FormApi.public.ts:169

Parses Standard Schema issues into an error returnable from onSubmit.

Issue paths are mapped to fields in the submitted value. Return the parsed error from onSubmit to add those errors to validation state.

Example

ts
{
  // ...
  onSubmit: async ({ value, parseIssues }) => {
    const result = zodSchema.safeParse(value)

    if (!result.success) {
      return parseIssues(result.error.issues)
    }
  },
}

validatorOutputs

ts
validatorOutputs: TOutputs;

Defined in: FormApi/FormApi.public.ts:124

Schema outputs and createOutput payloads from this submission, ordered by validator index. Skipped validators and successful returns without an output contribute undefined.

Example

ts
{
  // ...
  onSubmit: async ({ validatorOutputs }) => {
    const validatedUser = validatorOutputs[0]
    await saveUser(validatedUser)
  },
}

value

ts
value: TFormData;

Defined in: FormApi/FormApi.public.ts:105

The form values for this submission.