0

在 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是一个计算方法,它返回该字段的所有错误。

  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),为什么返回错误数组为空?

4

1 回答 1

1

如果您查看文档以了解is 和空数组v-text-field的默认 prop 值。error-messages[]

https://vuetifyjs.com/en/components/text-fields

即使输入没有被触及并且不是 $dirty ,该函数的默认返回应该总是返回一个空数组,否则我确信 Vuetify 组件会抛出错误。

于 2018-06-07T17:27:28.650 回答