无法读取未定义的属性“__isVuelidateAsyncVm”

Bog*_*byk 5 javascript vue.js vuetify.js vuelidate

这是我的codesandbox代码,我这里有一个带有验证的表单和“计算”按钮,该按钮在所有字段都有效之前被禁用。但由于某种原因,我收到了错误 Cannot read property '__isVuelidateAsyncVm' of undefined

AJT*_*T82 7

首先一些评论,很高兴您提供了沙箱,但您的问题本身应该包含重现问题的相关代码。如果链接失效,这个问题就变得毫无意义。

进行一些调试以实际查找哪个字段导致了此错误。通过删除一个又一个字段,我注意到是性别字段导致了您的问题。因此,仔细查看inArray您的自定义验证器,我注意到您没有返回任何内容,这导致验证失败。添加return到您的inArray

const inArray = (value, vm) => {
  // add return!
  return vm.items.some(gender => value.indexOf(gender) !== -1);
};
Run Code Online (Sandbox Code Playgroud)

PS,作为提示,尝试进行一些调试来缩小问题范围,您可能已经自己解决了这个问题:)

您的问题的其余相关代码:

<v-select
   v-model="user.gender.value"
   :items="user.gender.items"
   label="Gender"
   :solo="true"
   :error-messages="userGenderErrors"
   append-icon
></v-select>
Run Code Online (Sandbox Code Playgroud)

脚本:

validations: {
  user: {
    gender: {
      value: {
        required,
        inArray
      }
    },
  }
},
Run Code Online (Sandbox Code Playgroud)

固定沙盒