在TypeScript中使用FieldArrays是通过使用React Hook Form库来实现的。FieldArrays允许我们在表单中动态地添加、删除和操作数组字段。
要在TypeScript中使用FieldArrays,首先需要安装React Hook Form库。可以使用以下命令进行安装:
npm install react-hook-form
安装完成后,可以按照以下步骤在TypeScript中使用FieldArrays:
import { useForm, useFieldArray, FieldArray } from 'react-hook-form';
import { Form } from 'react-bootstrap';
type FormData = {
items: {
name: string;
quantity: number;
}[];
};
const MyForm = () => {
const { control, handleSubmit } = useForm<FormData>();
const { fields, append, remove } = useFieldArray({
control,
name: 'items',
});
const onSubmit = (data: FormData) => {
console.log(data);
};
return (
<Form onSubmit={handleSubmit(onSubmit)}>
{fields.map((field, index) => (
<div key={field.id}>
<Form.Control
name={`items[${index}].name`}
defaultValue={field.name}
ref={control.register()}
/>
<Form.Control
name={`items[${index}].quantity`}
defaultValue={field.quantity}
ref={control.register()}
/>
<button type="button" onClick={() => remove(index)}>
Remove
</button>
</div>
))}
<button type="button" onClick={() => append({ name: '', quantity: 0 })}>
Add Item
</button>
<button type="submit">Submit</button>
</Form>
);
};
在上面的代码中,我们定义了一个名为items
的数组字段,其中包含name
和quantity
字段。我们使用useForm
和useFieldArray
来处理表单和字段数组。在表单的onSubmit
回调中,我们可以获取到整个表单的数据。
MyForm
组件:const App = () => {
return <MyForm />;
};
export default App;
通过以上步骤,我们就可以在TypeScript中使用FieldArrays来处理动态数组字段了。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云