Skip to content

require-use-form-default-values

Require explicit form-level initialization or a field default for directly bound Controller fields.

Why

React Hook Form exposes form-level defaultValues/values and field-level defaultValue as its explicit initialization mechanisms. A directly bound controlled field should not omit both mechanisms.

Fix

Provide a non-undefined defaultValues or values option to useForm, or a non-undefined defaultValue on the associated Controller/useController field.

Examples

Before — flagged Do not leave a controlled field uninitialized
profile-form.tsx
"use client";
import { Controller, useForm } from "react-hook-form";
function ProfileForm() {
const form = useForm();
return <Controller control={form.control} name="name" render={() => null} />;
}
After — preferred Initialize controlled fields at form level
profile-form.tsx
"use client";
import { Controller, useForm } from "react-hook-form";
function ProfileForm() {
const form = useForm({ defaultValues: { name: "" } });
return <Controller control={form.control} name="name" render={() => null} />;
}