使用Form.List是因为我的项目中涉及到一个两个单选按钮,当点击来自定义单选按钮就显示input框的问题,我当时最初没有选择用Form.List遇到了各种各样的坑,造成了很大时间上的浪费,初次用Form.List虽然会有点抵抗,但是却解决我的代码洁癖,写完感觉我的代码是非常整洁的。
使用:
注:一下是省略写法,主要是用来总结Form.List的使用,具体操作还是要看项目的需求
const users = [
{
name:'min',
label: '小刚',
},
{
name: 'max'
label: '小王',
}
]
<Form initialValues={{user: users}}>
<Form.List name="user"> // 这里的name必须得和initialValues中的对象属性名是一致的
{(fileds) => { // 这里的fileds就是users的多少条数据,log出来看看内容
return <>
{
fileds.map((item, index) => {
return <>
<Form.Item
name={[item.name,] users[index].name}
label={users[index].label}
>
<Radio.Group onChange={onChange} value={value}>
<Radio value={1}>默认值</Radio>
<Radio value={2}>
自定义
<Form.Item ...>
<Input />
</Form.Item>
</Radio>
</Radio.Group>
</Form.Item>
</>
})
}
</>
}}
</Form.List>
</Form>
我认为Form.List就是相当于对表单分组了,然后进行分组后的Form.Item进行嵌套使用,从而解决我们最后在提交请求接口的时候解决取值的问题。
注:使用了Form.List后最后使用getFieldsValue()获取值的时候,也是user:{}包裹了一层对象的
initialValues设置的是初始值,我们可以用setFieldsValue({user: []})去更新值。