The fieldArray structure and methods on useForm()
//The rendered inputs names need to correspond to the defaultValues(if set)
const {register, control, formState: {errors}} = useForm({
defaultValues: {
basic: "primo",
domandad: [{primo: "valore", second: "self select"}]
}
})
const {fields, append} = useFieldArray({
control: control, name: "domandad",
rules: { minLength: { value: 4, message: "Its too short" } }
})
<form>
<input {...register("basic")} />
<ul>
{fields.map((item, index)=>{
return(
<li key={item.id}>
<input {...register(`domandad.${index}.primo`,{required: "missing"})}/>
<input {...register(`domandad.${index}.second`,
{minLength: {value: 10, message: "too shorty"}}) }
/>
<p> { errors?.domandad?.[index]?.primo?.message } </p>
<p> { errors.domandad&& errors.domandad[index]?.name.message } </p>
</li>
)
})
}
</ul>
<p> { errors.domandad?.root.message } </p>
</form>The useFieldArray() methods
The fieldArray inputs and values rules on useForm() render


A fieldArray form with nested useForm() components.
PreviousReact-Hook-form 3: Controller, useController(), useformState() and form Context.NextThe <errorMessage> component, useWatch() hook and multi-page funnel useForm().
Last updated