[antd: Form.Item] `children` is array of render props cannot have `name`.
如果在Form.Item里面嵌套超过两个子元素,就会出现上面的错误,代码类似于下面:
<Form.Item label="姓名" name="name" rules={[{ required: true, whitespace: true }]} > <Input placeholder="请输入联系人姓名" maxLength={50} allowClear onChange={onChange} /> <span style={{color:'#999', display: 'block', textAlign: 'right'}}>({nameLength}/50)</span> </Form.Item>表现:默认值无法赋值上去,并且会报上面的错。
解决方案:
<Form.Item label="姓名" rules={[{ required: true, whitespace: true }]} > <Form.Item name="name" noStyle> <Input placeholder="请输入联系人姓名" maxLength={50} allowClear onChange={onChange} /> </Form.Item> <span style={{color:'#999', display: 'block', textAlign: 'right',}}>({nameLength}/50)</span> </Form.Item>官方解释:<Form.Item name="field" /> 只会对它的直接子元素绑定表单功能,例如直接包裹了 Input/Select。如果控件前后还有一些文案或样式装点,或者一个表单项内有多个控件,你可以使用内嵌的 Form.Item 完成。你可以给 Form.Item 自定义 style 进行内联布局,或者添加 noStyle 作为纯粹的无样式绑定组件(类似 3.x 中的 getFieldDecorator)。