使用 FieldArray 组件管理动态表单数组。
const form = useFormState({
fields: {
members: {
defaultValue: [{ name: '', email: '', role: 'developer' }]
}
}
});
<FieldArray name="members" formState={form}>
{#snippet children({ fields, append, remove, move })}
{#each fields as field, index (field.key)}
<button onclick={() => move(index, index - 1)}>上移</button>
<button onclick={() => move(index, index + 1)}>下移</button>
<button onclick={() => remove(index)}>删除</button>
<FormField name={`members[${index}].name`}>
...
</FormField>
{/each}
<button onclick={() => append({ name: '', email: '', role: 'developer' })}>
添加成员
</button>
{/snippet}
</FieldArray>{
"teamName": "",
"members": [
{
"name": "",
"email": "",
"role": "developer"
}
]
}