解決antd 表單設(shè)置默認值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è)置默認值可以解決
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è)置默認值initialValue后驗證失效的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue.js3.2的vnode部分優(yōu)化升級使用示例詳解
這篇文章主要為大家介紹了Vue.js3.2的vnode部分優(yōu)化升級使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
vue踩坑記之npm?install報錯問題解決總結(jié)
當你跑起一個項目的時候,第一步需要先安裝依賴npm install,下面這篇文章主要給大家介紹了關(guān)于vue踩坑之npm?install報錯問題解決的相關(guān)資料,需要的朋友可以參考下2022-06-06
vue使用assign巧妙重置data數(shù)據(jù)方式
這篇文章主要介紹了vue使用assign巧妙重置data數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03

