Dynamic Fields with useFieldArray
Add, remove, and reorder dynamic form fields using the useFieldArray hook.
Dynamic Fields with useFieldArray is a free React Academy lesson on CoddyKit — lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the React Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Welcome
What Is useFieldArray?
import { useFieldArray } from 'react-hook-form';
const { fields, append, remove } = useFieldArray({
control,
name: 'phoneNumbers',
});Setup: control from useForm
const { register, control, handleSubmit } = useForm({
defaultValues: { phoneNumbers: [{ value: '' }] },
});Rendering the Fields
return fields.map((field, index) => (
<div key={field.id}>
<input
{...register(`phoneNumbers.${index}.value`)}
/>
<button onClick={() => remove(index)}>Remove</button>
</div>
));Appending New Fields
<button onClick={() => append({ value: '' })}>
Add Phone Number
</button>Removing Fields
<button onClick={() => remove(index)}>Delete</button>Minimum Fields Validation
const schema = z.object({
emails: z.array(z.object({ value: z.string().email() }))
.min(1, 'At least one email required'),
});Swapping and Moving Fields
swap(0, 2); // swap first and third items
move(3, 0); // move item at index 3 to the topNested useFieldArray
Submitting Array Data
const onSubmit = (data) => {
console.log(data.phoneNumbers);
// [{ value: '555-1234' }, { value: '555-5678' }]
};Quick Check
Recap
Course Complete
Frequently asked questions
Is the “Dynamic Fields with useFieldArray” lesson free?
Yes — the full text of “Dynamic Fields with useFieldArray” is free to read here on the web, and the React Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the React Academy course, upgrade to CoddyKit PRO.
What will I learn in “Dynamic Fields with useFieldArray”?
Add, remove, and reorder dynamic form fields using the useFieldArray hook. You practise React Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start React Academy?
No prior experience is required. React Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Dynamic Fields with useFieldArray” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this React Academy lesson?
Yes. Every React Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Getting Started with React Hook Form
- Validation Rules & Error Messages
- Schema Validation with Zod
- Dynamic Fields with useFieldArray