Skip to content

API Reference / @gtkx/forms / useForm

Function: useForm() ​

useForm<TFieldValues, TContext, TTransformedValues>(props?): UseFormReturn<TFieldValues, TContext, TTransformedValues>

Core hook for managing a form. Returns all methods and state for registration, validation, and submission.

Type Parameters ​

TFieldValues ​

TFieldValues extends FieldValues = FieldValues

TContext ​

TContext = any

TTransformedValues ​

TTransformedValues = TFieldValues

Parameters ​

props? ​

Partial<{ context: TContext; criteriaMode: CriteriaMode; defaultValues: AsyncDefaultValues<TFieldValues> | DefaultValues<TFieldValues>; delayError: number; disabled: boolean; errors: FieldErrors<TFieldValues>; formControl?: Omit<UseFormReturn<TFieldValues, TContext, TTransformedValues>, "formState">; mode: "onBlur" | "onChange" | "onSubmit" | "onTouched" | "all"; progressive: boolean; resetOptions: Partial<{ keepDefaultValues: boolean; keepDirty: boolean; keepDirtyValues: boolean; keepErrors: boolean; keepFieldsRef: boolean; keepIsSubmitSuccessful: boolean; keepIsSubmitted: boolean; keepIsValid: boolean; keepIsValidating: boolean; keepSubmitCount: boolean; keepTouched: boolean; keepValues: boolean; }> | undefined; resolver: Resolver<TFieldValues, TContext, TTransformedValues>; reValidateMode: "onBlur" | "onChange" | "onSubmit"; shouldFocusError: boolean; shouldUnregister: boolean; shouldUseNativeValidation: boolean; validate: ValidateForm<TFieldValues>; values: TFieldValues; }>

Returns ​

UseFormReturn<TFieldValues, TContext, TTransformedValues>

See ​

API

Example ​

tsx
const { register, handleSubmit, formState: { errors } } = useForm<FormValues>();
<form onSubmit={handleSubmit(onSubmit)}>
  <input {...register("email", { required: true })} />
</form>