解決antd 表單設(shè)置默認(rèn)值initialValue后驗證失效的問題
方法一:
getFieldDecorator沒有第三個參數(shù),如果寫了3個參數(shù)就會出錯
錯誤代碼:
<Form.Item> { getFieldDecorator('userName', { initialValue: 'Tom' },{ rules: [{ required: true, message: '請輸入用戶名', }], })( <Input placeholder='請輸入用戶名'/> ) } </Form.Item>
正確代碼:
<Form.Item> { getFieldDecorator('userName',{ initialValue:'Tom', rules:[ {required: true,message:'請輸入用戶名'} ] })( <Input placeholder='請輸入用戶名'/> ) } </Form.Item>
方法二:通過setFieldsValue來設(shè)置默認(rèn)值可以解決
this.props.form.setFieldsValue({ inputValue1:this.state.inputValue1, inputValue2:this.state.inputValue2, inputValue3:this.state.inputValue3, });
如果還不能解決,查看是否在表單提交函數(shù)里寫了驗證代碼
handleSubmit = (e) => { e.preventDefault(); this.props.form.validateFields((err) => { if (err) { console.log('表單驗證失敗'); }else{ this.handleOk();//這里是表單驗證成功執(zhí)行的函數(shù) } }); };
補充知識:antd自定義組件初始值沒有返回或者設(shè)置initialValue,form.validateFields不會執(zhí)行驗證
在自定義組件中加個componentDidMount返回初始值就可以啦
componentDidMount() { const { onChange } = this.props; onChange({ ...this.state, }); }
以上這篇解決antd 表單設(shè)置默認(rèn)值initialValue后驗證失效的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue.js3.2的vnode部分優(yōu)化升級使用示例詳解
這篇文章主要為大家介紹了Vue.js3.2的vnode部分優(yōu)化升級使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07vue踩坑記之npm?install報錯問題解決總結(jié)
當(dāng)你跑起一個項目的時候,第一步需要先安裝依賴npm install,下面這篇文章主要給大家介紹了關(guān)于vue踩坑之npm?install報錯問題解決的相關(guān)資料,需要的朋友可以參考下2022-06-06vue中的provide/inject的學(xué)習(xí)使用
本篇文章主要介紹了vue中的provide/inject的學(xué)習(xí)使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05vue使用assign巧妙重置data數(shù)據(jù)方式
這篇文章主要介紹了vue使用assign巧妙重置data數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03