Antd:如何使用 setFieldsValue 设置嵌套字段值

Antd: How to set nested field value using setFieldsValue

所以我有一个嵌套的动态表单,我想使用 getFieldsValue 检查它的值。但无论何时我这样做,它都不会 return 我的价值观。

使用 ant 表单挂钩,我将表单列表创建为 <Form.List name="guests"> 并将名称分配给表单输入 <FormInput name={[index, "firstName"]} label='FIRST NAME' />

我正在尝试使用 form.setFieldsValue({ [index, "firstName"]: [value]) 设置它的值,但它不起作用。关于如何设置路径的任何建议。 严格需要使用 setFieldsValue

首先使用form.getFieldValue获取guests数组(你也可以使用getFieldsValue(['guests'])?.guests)。 然后你可以像这样修改和设置值:

let guests = form.getFieldValue('guests');

// Check If `guests` exist & guest is an array & it's not empty
if (guests && Array.isArray(guests) && guests.length) {
    // Check If firstName exists at that `index`
    if (guests[index]?.firstName) {
        guests[index].firstName = 'New Name';
        form.setFieldsValue({ names: guests });
    }
}