---
title: Use Single useFieldArray Instance Per Field Name
impact: MEDIUM-HIGH
impactDescription: prevents state conflicts from duplicate subscriptions
tags: array, useFieldArray, instance, state-management
---
## Use Single useFieldArray Instance Per Field Name
Each field name should have only one useFieldArray instance. Multiple instances managing the same field name cause state conflicts and unpredictable behavior.
**Incorrect (multiple instances for same field):**
```typescript
function OrderForm() {
const { control } = useForm()
return (
)
}
function ItemsList({ control }: { control: Control }) {
const { fields, append } = useFieldArray({ control, name: 'items' }) // Instance 1
return {/* render items */}
}
function ItemsSummary({ control }: { control: Control }) {
const { fields } = useFieldArray({ control, name: 'items' }) // Instance 2 - conflicts!
return Total items: {fields.length}
}
```
**Correct (single instance, pass fields down or use useWatch):**
```typescript
function OrderForm() {
const { control } = useForm()
const { fields, append, remove } = useFieldArray({ control, name: 'items' })
return (
{/* Uses useWatch, not useFieldArray */}
)
}
function ItemsSummary({ control }: { control: Control }) {
const items = useWatch({ control, name: 'items' }) // Read-only subscription
return Total items: {items?.length ?? 0}
}
```
Reference: [useFieldArray](https://react-hook-form.com/docs/usefieldarray)