在React中,可以使用Form.List来创建一个动态表单列表,并将其与明细数据进行绑定。

首先,需要在表单组件中引入Form.List组件,并在Form.Item中使用它来创建一个表单列表。例如:

import { Form, Input, Button } from 'antd';

const MyForm = () => {
  const onFinish = (values) => {
    console.log('Received values of form:', values);
  };

  return (
    <Form name="dynamic_form_item" onFinish={onFinish}>
      <Form.List name="details">
        {(fields, { add, remove }) => {
          return (
            <div>
              {fields.map((field, index) => (
                <Form.Item
                  {...field}
                  label={`Detail ${index + 1}`}
                  name={[field.name, 'name']}
                  fieldKey={[field.fieldKey, 'name']}
                  rules={[{ required: true, message: 'Missing detail name' }]}
                >
                  <Input placeholder="Detail Name" />
                </Form.Item>
              ))}
              <Form.Item>
                <Button type="dashed" onClick={() => add()} block>
                  Add Detail
                </Button>
              </Form.Item>
            </div>
          );
        }}
      </Form.List>
      <Form.Item>
        <Button type="primary" htmlType="submit">
          Submit
        </Button>
      </Form.Item>
    </Form>
  );
};

export default MyForm;

在上面的示例中,我们使用Form.List创建了一个名为"details"的表单列表。在表单列表中,我们使用fields.map来遍历每个表单项,并使用Form.Item来创建每个明细项的表单控件。我们将每个明细项的name和fieldKey设置为一个数组,以便能够正确地绑定和更新每个明细项的值。

通过调用add函数,可以动态地添加新的明细项。通过调用remove函数,可以动态地删除明细项。

最后,我们在表单的onFinish回调函数中获取绑定的明细数据。在这个示例中,我们只是简单地将其打印到控制台上,但你可以根据需要进行其他操作。

这就是如何使用Form.List来绑定明细数据的基本方法。你可以根据自己的需求进行调整和扩展


原文地址: https://www.cveoy.top/t/topic/iVME 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录