在 Modal 组件中用了 Form 组件,发现第一次打开时 Switch 默认是false,选中 true 后,关闭 Modal 再次打开,Switch 显示 true,即使用了 form.resetFields() 和 Modal 的 destroyOnClose 还是无法重置为 false,后面发现
经过 getFieldDecorator 包装的控件,表单控件会自动添加 value(或 valuePropName 指定的其他属性) onChange(或 trigger 指定的其他属性),数据同步将被 Form 接管。
加入valuePropName属性之后,就可以使用resetFields()方法重置Switch组件。
<FormItem
label={item.title}
key={item.field}
style={{ ...item.style }}
>
{getFieldDecorator(item.field, {
initialValue: item.value,
valuePropName: 'checked'
})(
<Switch
checkedChildren="是"
unCheckedChildren="否"
/>
)}
</FormItem>