antd中validateFields失效问题

  在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()
        }
    };

  是不是和你踩的坑一样,有没有一种困扰多年的**瞬间通畅的感觉,

  欢迎借鉴交流

猜你喜欢

转载自www.cnblogs.com/ding-dong/p/13208683.html