Ant-Design:Form.list使用

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<Form>
<Form.List name='data'>
{(fields) => (
fields.map(field => (
<Form.Item name={[field.name, 'name']}>
<Input style={{ width: 80 }} />
</Form.Item>
<Form.Item name={[field.name, 'age']}>
<InputNumber style={{ width: 80 }} />
</Form.Item>
))
)}
</Form.Lsit>
</Form>

数据结构

1
2
3
4
5
6
7
8
9
10
11
12
{
data: [
{
name: 'aaa',
age: 11
},
{
name: 'aaa',
age: 111
}
]
}

实际应用

  • 结构和数据一定要对应
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // 数据结构
    const listFields = {
    1: [{name:a}, {name:b}],
    2: [{name:aa}, {name:bb}],
    }
    const data = {
    1: [{a:11}, {b:10}],
    2: [{aa:11}, {bb:10}],
    }

    // 使用
    <Form>
    {
    Object.keys(listFields).map(name => (
    <Form.List name={name}>
    {(fields) => (
    listFields[name].map((item, index) => (
    <Form.Item name={[fields[index]?.name, item.name]}>
    <Input style={{ width: 80 }} />
    </Form.Item>
    ))
    )}
    </Form.Lsit>
    ))
    }
    </Form>
-------------本文结束 感谢您的阅读-------------