Field Array
In this page, you will learn how to create a FieldArrayInstance and handle array of data by using Ez Form.
Create Field
To create FieldArrayInstance, you can use useFieldArray or form.FieldArray. Let's me show you how to do it in real life:
tsx
import { useForm, BindingFieldInput } from "@ez-kits/form-react";
export interface Member {
fullName: string;
age: number;
}
export interface MembersFormValues {
members: Member[];
}
export function MembersForm() {
const membersForm = useForm<MembersFormValues>({
initialValues: {
members: [{
fullName: "Test member",
age: 18,
}],
},
});
return <membersForm.Form>
<form {...membersForm.getFormProps()}>
<membersForm.FieldArray name="members">
{({fieldArray}) => {
return <div>
{
fieldArray.value.map((_, index) => {
return <div>
Member {index + 1}:
<div>
<fieldArray.Field name={`[${index}].fullName`}>
<label>
Full name:
<BindingFieldInput>
<input />
</BindingFieldInput>
</label>
</fieldArray.Field>
<fieldArray.Field name={`[${index}].age`}>
<label>
Age:
<BindingFieldInput>
<input type="number" />
</BindingFieldInput>
</label>
</fieldArray.Field>
</div>
<button onClick={() => fieldArray.remove(index)}>
Remove member {index + 1}
</button>
</div>
})
}
<button onClick={() => fieldArray.push({
fullName: "",
age: 18,
})}>
Add member
</button>
</div>
}}
</membersForm.FieldArray>
</form>
</membersForm.Form>;
}Utilities
FieldArrayInstance provides these utilities to let you handle array of data easier:
pushunshiftpopshiftinsertremoveswapmovereplace
