Vee Validate 3.0-未在实例上定义“必需”的属性或方法,但在渲染期间引用了该属性或方法

时间:2019-11-10 16:01:12

标签: vue.js vee-validate

我觉得我现在已经快要使用Vee Validate 3.0了,但是在运行时我不断收到以下警告:

Property or method "required" is not defined on the instance but referenced during render

我正在使用包含管道的正则表达式验证,因此我需要作为对象而不是字符串发送。

这是我的代码:

<ValidationProvider :rules="{ required, regex: /^(0[1-9]|1[0-2])\/\d{4}$/ }" name="exp" v-slot="{ errors }">
  <input name="exp" v-model="payment.exp" placeholder="Expiry MM/YYYY" class="form-control"/>
  <span class="warning">{{ errors[0] }}</span>
</ValidationProvider>

所有内容编译时都不会发出警告,并且验证可以在运行时正常运行,但是控制台上的警告是什么?

任何人都知道该怎么做才能删除它?

1 个答案:

答案 0 :(得分:0)

为简洁起见,我将省略正则表达式。这不是vee验证问题,您将规则prop绑定到对象:{ required }

现在required的计算结果是什么?由于您没有在组件中的任何地方定义required,因此您将得到该错误,就像模板中任何未定义的反应式道具一样。

我假设您希望输入您的字段,所以您需要为required键提供一个值:

<ValidationProvider :rules="{ required: true }" name="exp" v-slot="{ errors }">
  <input name="exp" v-model="payment.exp" placeholder="Expiry MM/YYYY" class="form-control"/>
  <span class="warning">{{ errors[0] }}</span>
</ValidationProvider>