Учитывая следующий компонент Vue, который использует Vuetify и Vuelidate:
<template>
<div id = "app">
<v-date-picker v-model = "$v.picker.$model"></v-date-picker>
</div>
</template>
<script>
import Vue from 'vue'
import Vuetify from 'vuetify/lib'
import { required } from 'vuelidate/lib/validators'
Vue.use(Vuetify)
new Vue({
el: "#app",
data() {
return {
picker: new Date().toISOString().substr(0, 10)
};
},
validations: {
picker: {
required
}
}
});
</script>
Я хотел бы программно изменить значение this.picker. Я попытался изменить как v-model, так и Vuelidate $model:
this.picker = new Date().toISOString().substr(0, 10)
а также
this.$v.picker.$model = new Date().toISOString().substr(0, 10))
Ни один из них не вызвал изменения в пользовательском интерфейсе и не выдал сообщение об ошибке.
Как я могу программно обновить значение DatePicker?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте просто назначить v-модель на picker вместо $v.picker.$model.
Вы сказали, что пытались изменить v-модель, но это должно сработать.
<v-date-picker v-model = "picker"></v-date-picker>
почему это работает? документация vuelidate всегда использует предыдущую модель $v и следующую модель $ для точки данных, но кажется, что она не имеет смысла для фактической проверки и просто вводит ошибки. Кто-нибудь знает, в чем их смысл?
В моей форме есть ввод типа файла, который элемент не может использовать
v-model. Если у вас есть альтернативное решение. Пожалуйста, поделитесь им со мной. @Джош Ньюлин