antd Form.Item的name是数组时如何取值

 <Form.Item
    name={['0', 'gender', 'gender1']}
    label="gender"
 >
    <Select>
        <Option value="male">male</Option>
        <Option value="female">female</Option>
        <Option value="other">other</Option>
    </Select>
</Form.Item>

使用shouldUpdate做动态渲染,item的name是这种数组形式的时候,要取到gender1该怎么写

阅读 8.4k
1 个回答
新手上路,请多包涵

Form.Itemname属性只有字符类型,传入数组也会转换成字符

image.png

如果加上必填校验rules={[{ required: true }]},提交就会出现 '0.gender.gender1' is required 提示,说明name被转换成了 '0.gender.gender1'

image.png

想要动态name可以添加一个state传给name,如name={this.state.fieldName},需要的时候在shouldUpdate中使用setState更新就好了