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

  是不是和你踩的坑一樣,有沒有一種困擾多年的**瞬間通暢的感覺,

  歡迎借鑒交流


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM