在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() } };
是不是和你踩的坑一样,有没有一种困扰多年的**瞬间通畅的感觉,
欢迎借鉴交流
原文:https://www.cnblogs.com/ding-dong/p/13208683.html