在 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>