在antd4.0中Form使用initialValue操作
悲傷
一開始一直以為initialValue是個好東西,這樣我每次編輯的時候把數據傳過來就行,后來發(fā)現不得行!給大家看看

就離譜,后面認真看了一下文檔才知道這個玩意是默認值,第一次有了之后就一直是這個。
然后我在網上看用resetFields()這個方法,每次提交或者取消之后重置一下數據,然而我試了還是不得行,會變成每次點擊顯示的是上一次的數據,所以后面還是老老實實看了一下form的其他方法。
貼個圖

解決
放棄initialValue
const [form] = useForm()
form.setFielsValue(currentItem)
用form帶的設置數據方法。這樣能夠保證每次都是最新的。
隨手一貼
也沒啥上下文,就將就著看寫法就行??!
const { visible, onEdit, onCancel, type, currentItem, ...modalProps } = props;
const [form] = useForm()
useEffect(() => {
form.setFieldsValue({ ...currentItem });
}, [visible])
const onOk = () => {
form.validateFields().then((values: any) => {
onEdit(values)
})
}
補充知識:antd Form表單initialValue設置無效的問題之一
在表格數據中,編輯數據時用到的表單需要使用initialValue 來設置初始值,
以下寫法會導致initialValue設置無效。
當表單組件被<></> ,< div></ div> 等包裹時,initialValue設置無效
// initialValue 設置無效的寫法
<Form.Item label="xxx">
{getFieldDecorator('xxx',{
initialValue:'default'
})(
<>
<Input />
<span>....</span>
</>
)
}
</Form.Item>
// 正確的寫法
<Form.Item label="xxx">
{getFieldDecorator('xxx',{
initialValue:'default'
})(
<Input />
)
}
// <span></span>
</Form.Item>
以上這篇在antd4.0中Form使用initialValue操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
如何使用vue slot創(chuàng)建一個模態(tài)框的實例代碼
這篇文章主要介紹了如何使用vue slot創(chuàng)建一個模態(tài)框,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
vue2如何使用vue-i18n搭建多語言切換環(huán)境
這篇文章主要介紹了vue2-使用vue-i18n搭建多語言切換環(huán)境的相關知識,在data(){}中獲取的變量存在更新this.$i18n.locale的值時無法自動切換的問題,需要刷新頁面才能切換語言,感興趣的朋友一起看看吧2023-12-12

