在antd的form表單中通常用this.props.form.validateFields()來獲取並提交表單信息,那么問題來了,有時為啥會不走validateFields()方法里的代碼呢?
這是因為你的form表單里有自定義校驗,而你的自定義校驗沒有用callback()跳出:
// 校驗角色名字唯一 getName = (rule, value, callback) => { const { dispatch } = this.props; const { recodes } = this.state; if (value) { dispatch({ type: 'roleModel/getName', payload: { roleId: recodes ? recodes.roleId : '', roleName: value } }) .then((xhr)=>{ if(!xhr){ callback('該角色名稱已存在'); } }) callback()//在這里加一個callback就好了 }else{ callback() } };
是不是和你踩的坑一樣,有沒有一種困擾多年的**瞬間通暢的感覺,
歡迎借鑒交流