form表单自定义调接口校验

// 校验角色名字唯一
    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('该角色名称已存在');//抛发异常信息
                }else{
                    callback()//必须返回,联通表单err
                }
            })
        }else{
            callback()//返回联通必填校验
        }
    }
    <FormItem {...formItemLayout}
         label="角色名称"
         >
        {form.getFieldDecorator('roleNames', {
        initialValue: recodes?recodes.roleName:'',
        rules: [
           {
              required: true,
              message: '请填写角色名称'
           },
           {
               max: 30,
               message: '最长可输入30个字符'
           },
           {
              validator: this.getName
           }
         ]
       })(
            <Input />
         )}
   </FormItem>
                               

 

posted @ 2020-07-10 13:53  a茶色  阅读(631)  评论(0)    收藏  举报