【发布时间】:2021-11-17 04:43:32
【问题描述】:
我正在尝试让 vee-validate 用于自定义组件(我称之为 "DatePickerInput")。
Vee-validate 适用于其他非自定义组件。DatePickerInput 组件上的v-model 有效(值在父组件中更新)。
问题:没有显示错误消息并且“errors”值保持为空:
<validation-provider
v-slot="{ errors }"
:name="$t('StartDate')"
rules="required">
<div>{{ errors }}</div>
<DatePickerInput
v-model="startDate"
:label="$t('StartDate')"
:error-messages="errors" />
</validation-provider>
DatePickerInput 组件是这样创建的(我删除了一些看起来不相关的属性):
<template>
<v-menu v-model="showMenu">
<template v-slot:activator="{ on, attrs }">
<v-text-field
v-model="date"
:label="label"
:error-messages="errorMessages"
prepend-icon="mdi-calendar"
v-bind="attrs"
v-on="on"
@click:prepend="showMenu = !showMenu"></v-text-field>
</template>
<v-date-picker
:value="isoDate"
@input="(isoDate) => this.date = isoDate"></v-date-picker>
</v-menu>
</template>
<script>
export default {
props: ['value', 'label', 'error-messages'],
data() {
return {
date: this.value,
showMenu: false,
}
},
computed: {
isoDate() {
return new Date(this.date).toISOString().substr(0, 10)
},
},
watch: {
date: {
handler(date) { this.handleInput(date) },
},
},
methods: {
handleInput(e) { this.$emit('input', e) },
},
}
</script>
为什么不显示错误?
【问题讨论】:
标签: vuejs2 vue-component vuetify.js vee-validate