Vuelidate - 错误验证逻辑
Vuelidate - Error Validation Logic
关于vuetify的表单验证(使用vuelidate)的官方例子有
<v-text-field
v-model="name"
:error-messages="nameErrors"
:counter="10"
label="Name"
required
@input="$v.name.$touch()"
@blur="$v.name.$touch()"
></v-text-field>
nameErrors 是一个计算方法,returns 字段的所有错误。
nameErrors () {
const errors = []
if (!this.$v.name.$dirty) return errors
!this.$v.name.maxLength && errors.push('Name must be at most 10 characters long')
!this.$v.name.required && errors.push('Name is required.')
return errors
},
谁能解释一下这条线的意义所在
if (!this.$v.name.$dirty) return errors
如果字段没有被修改(不是 $dirty),为什么 return 错误数组为空?
如果您查看 v-text-field
的文档,error-messages
的默认属性值是空数组 []
。
https://vuetifyjs.com/en/components/text-fields
即使输入没有被触及并且不是 $dirty,该函数的默认 return 也应该总是 return 一个空数组,否则我确信 Vuetify 组件会抛出一个错误。
关于vuetify的表单验证(使用vuelidate)的官方例子有
<v-text-field
v-model="name"
:error-messages="nameErrors"
:counter="10"
label="Name"
required
@input="$v.name.$touch()"
@blur="$v.name.$touch()"
></v-text-field>
nameErrors 是一个计算方法,returns 字段的所有错误。
nameErrors () {
const errors = []
if (!this.$v.name.$dirty) return errors
!this.$v.name.maxLength && errors.push('Name must be at most 10 characters long')
!this.$v.name.required && errors.push('Name is required.')
return errors
},
谁能解释一下这条线的意义所在
if (!this.$v.name.$dirty) return errors
如果字段没有被修改(不是 $dirty),为什么 return 错误数组为空?
如果您查看 v-text-field
的文档,error-messages
的默认属性值是空数组 []
。
https://vuetifyjs.com/en/components/text-fields
即使输入没有被触及并且不是 $dirty,该函数的默认 return 也应该总是 return 一个空数组,否则我确信 Vuetify 组件会抛出一个错误。