在开发中经常使用Form组件管理表单,这次想通过form提供的resetFields()方法重置Switch组件,却没有生效。
查阅官方文档之后,发现有这样的描述:
经过
getFieldDecorator
包装的控件,表单控件会自动添加value
(或valuePropName
指定的其他属性)onChange
(或trigger
指定的其他属性),数据同步将被 Form 接管。
options.valuePropName 子节点的值的属性,如 Switch 的是 'checked'
加入valuePropName属性之后,就可以使用resetFields()方法重置Switch组件。
<FormItem
{...formItemLayout}
label="显示已删除的人员"
>
{getFieldDecorator('showDeletedEmp', {
initialValue: false,
valuePropName: 'checked', // 为用getFieldDecorator()包装后的Switch组件设置属性
})
(<Switch
checkedChildren="Y"
unCheckedChildren="N"
/>)}
</FormItem>