在此处输入代码我们如何动态编辑表单列表中的元素并使用 setFieldsValue 设置该元素
我得到的解决方案是为整个表单列表调用 setFieldsValue 但这不公平,会导致性能问题
我有这样的表单结构
users: [
{
name: "bob",
education: [
{
qualification: "masters",
college: "abc",
},
{
qualification: "degree",
collge: "ijk",
},
],
},
{
name: "alice",
education: [
{
qualification: "ug",
college: "abc",
},
{
qualification: "higher secondary",
college: "def",
},
],
},
];
Run Code Online (Sandbox Code Playgroud)
使用表单列表实现
在 antd v3 中,它是通过在 setFeildsValue 中提供路径来存档的,例如
setFieldsValue({ 'user.1.education.1.qualification':'某事' })
预先感谢您的宝贵回答
小智 4
如果你不明白@Ajish 的答案(像我一样),我会尝试解释一下:
正如Antd 文档所说,您需要将 a 传递FieldData[]给您的form.setFields()方法。就我而言,我只需要更新一个字段,并且只使用FieldData 中的name和value属性。因此,我的代码是这样的:
form.setFields([
{
name: ['products', fieldIndex, 'total-value'],
value: totalValue,
},
]);
Run Code Online (Sandbox Code Playgroud)
Name属性是一个NamePath,由以下部分组成:
Form.List组件的名称;为了更清楚地说明,products具有以下格式:
products: [
{
quantity: 0,
'unit-value': 0,
'total-value': 0,
},
],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5311 次 |
| 最近记录: |