https://baianat.github.io/vee-validate/guide/flags.html#introduction
Согласно документации, я должен иметь возможность получить логическое значение при использовании флага для значения одного из полей. Например.
computed: {
isFormDirty() {
return Object.keys(this.fields).some(key => this.fields[key].dirty);
}
},
Я пытаюсь отключить кнопку отправки в моей форме, пока все поля не станут действительными. Моя форма немного длинновата, поэтому я буду краткой. Все атрибуты входных данных структурированы следующим образом:
type="text", @change="updateForm", name="surname", v-validate="'required'", v-model="form.surname", id="surname"
. Все входные данные заключены в тег <form>
.
Метод updateForm выглядит так:
updateForm(event): void {
this.$store.commit('updateForm', this.form)
}
где мутация updateForm выглядит так:
updateForm(state, data) {
state.form = data;
},
Кнопка отправки выглядит так:
<button type="submit" :disabled="isFormValid">Submit</button>
где isFormValid - вычисляемое свойство, которое выглядит так:
get isFormValid(): boolean {
return Object.keys(this.form).some(key => this.form[key].invalid);
}
Данные формы также являются вычисляемым свойством:
get form(): FormData {
return this.$store.getters.getForm();
}
Проблема в том, что когда я console.log(Object.keys(this.form).map(key => this.form[key])
или console.log(this.$validator.fields.items.map(item => item.value)
внутри isFormValid()
, я получаю значения полей. Однако, когда я прикрепляю после них недопустимый флаг, он показывает undefined вместо ожидаемого логического значения. Почему это?