gpt4 book ai didi

reactjs - Antd V4 表单列表setFieldValue

转载 作者:行者123 更新时间:2023-12-05 05:02:05 26 4
gpt4 key购买 nike

在此处输入代码我们如何动态编辑表单列表中的元素并使用 setFieldsValue 设置该元素

我得到的解决方案是为整个表单 List 调用 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",
},
],
},
];

使用表单列表实现

  • 我想更新用户“alice”的“教育[1]”的“资格”使用 antd v4 setFieldsValue
  • 我得到了一个解决方案,即使用 getFieldsValue 获取所有值,然后更改更改“资格”,然后更新整个表单值,但是它会导致一些大型应用程序的性能问题
  • 如何使用 setFieldsValue 更新表单中的单个字段?
  • 在 antd v3 中,它通过在 setFeildsValue 中提供路径来存档,例如

    setFieldsValue({ 'user.1.education.1.qualification':'something' })

提前感谢您宝贵的回答

最佳答案

如果你不明白@Ajish 的回答(像我一样),我会试着解释一下:

作为Antd docs说,您需要将 FieldData[] 传递给您的 form.setFields() 方法。在我的例子中,我只需要更新一个字段,并且我只使用了 FieldData 中的 namevalue 属性。因此,我的代码是这样的:

form.setFields([
{
name: ['products', fieldIndex, 'total-value'],
value: totalValue,
},
]);

Name 属性是一个 NamePath组成:

  • 'products':我的 Form.List 组件的名称;
  • fieldIndex:引用我要更新的对象的索引;
  • 'total-value':我要更新的字段。

为了进一步说明,products 具有以下格式:

products: [
{
quantity: 0,
'unit-value': 0,
'total-value': 0,
},
],

关于reactjs - Antd V4 表单列表setFieldValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62393532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com