Javascript 使用VeeValidate,如何查看字段是否已被触碰且有效?

Javascript 使用VeeValidate,如何查看字段是否已被触碰且有效?,javascript,vue.js,vuejs2,vee-validate,Javascript,Vue.js,Vuejs2,Vee Validate,我正在尝试从计算属性访问验证标志: 计算:{ isFormValid(){ 让isValid=this.$validator.fields.some(field=>{ console.log(field.flags); 返回field.flags.toucted;| | field.flags.invalid; }); log(“isValid”,isValid); 返回有效; } }, 但这会给出一个错误:“TypeError:this.$validator.fields.some不是函数”

我正在尝试从计算属性访问验证标志:

计算:{
isFormValid(){
让isValid=this.$validator.fields.some(field=>{
console.log(field.flags);
返回field.flags.toucted;| | field.flags.invalid;
});
log(“isValid”,isValid);
返回有效;
}
},
但这会给出一个错误:
“TypeError:this.$validator.fields.some不是函数”

因此,我想我应该迭代
可观察的

let isValid=Array.from(this.$validator.fields)。some(field=>{
console.log(field.flags);
返回field.flags.toucted;/| | field.flags.invalid;
});
耶!进步!没有更多的错误。但当我更改表单输入值时,它不会重新计算

那么我该如何做呢?

通过以下方式迭代
此.fields
(而不是
此.validator.fields
):

//MyComponent.vue
导出默认值{
// ...
计算:{
isFormDirty(){
返回Object.keys(this.fields).some(key=>this.fields[key].dirty);
}
},
//...
}
使用该示例,您的计算道具将是:

//MyComponent.vue
导出默认值{
// ...
计算:{
isFormTouchedOrInvalid(){
返回Object.keys(this.fields).some(key=>this.fields[key]。触摸| | this.fields[key]。无效);
}
},
//...
}

在v3中,您可以轻松访问模板中的验证标志:


触摸:{{触摸}}无效:{{无效}

我建议您在官方网站上浏览这个主题-。我相信它会回答你所有的问题。我就是这样想到我所做的。问题是它不工作。
this.fields
来自哪里?@Shamoon
this.fields
是v2中的计算道具。看见