elementui 表单校验TypeError: callback is not a function

form表单自定义校验或者远程校验(从后端获取校验结果)时,要注意以下细节:

  data(){
    const validateuser = (rule, value, callback) => {
      let self=this;
      if (!value)return callback(new Error("请输入登录名"));
      checkLoginName(self,{loginName:value}).then(
        response=>{
          if (!!response.data&&response.data.data){
            return callback(new Error('输入登录名已存在,请重新输入'));
          }else {
            callback();
          }
        },response=>{
          console.log(response.data.message)
          callback();
        }
      )
    };

调用时:

rules:{
       loginName: [
         { validator: validateuser, trigger: 'blur' },
       ],

注意此处请求后端时我们并不是定义了一个函数(方法),而是一个变量,如果写成如下格式:

rules:{
       loginName: [
         { validator: validateuser(), trigger: 'blur' },
       ],

则程序报错如下:
`TypeError: callback is not a function

at validateuser (index.vue?0dbc:132)
at VueComponent.data (index.vue?0dbc:186)
at getData (vue.esm.js?efeb:4751)
at initData (vue.esm.js?efeb:4708)
at initState (vue.esm.js?efeb:4645)
at VueComponent.Vue._init (vue.esm.js?efeb:5009)
at VueComponent.Override.Vue._init (vue-i18n.common.js?c4ee:110)
at new VueComponent (vue.esm.js?efeb:5157)
at createComponentInstanceForVnode (vue.esm.js?efeb:3292)
at init (vue.esm.js?efeb:3123)`

你可能感兴趣的:(vue.js,前端,node.js)