Javascript 在Store.js中使用插件(VeeValidate)
我正在使用Vuex并添加了vee validate()。我正在使用一个store对象,通过它的一个操作,我希望能够根据服务器响应向errors集合添加自定义错误。是否可以访问vee validate的全局Javascript 在Store.js中使用插件(VeeValidate),javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我正在使用Vuex并添加了vee validate()。我正在使用一个store对象,通过它的一个操作,我希望能够根据服务器响应向errors集合添加自定义错误。是否可以访问vee validate的全局错误(ErrorBag)集合,该集合通常用作属性 根据,我应该能够添加到errors对象,但是当我在store对象中时,这个显然不一样 例如: <span id="error-message" v-if="errors.has('phone')">error message</
错误(ErrorBag)集合,该集合通常用作属性
根据,我应该能够添加到errors对象,但是当我在store对象中时,这个
显然不一样
例如:
<span id="error-message" v-if="errors.has('phone')">error message</span>
错误消息
我希望有一种方法可以访问errors
集合。是否有一种方法需要导入VeeValidate
以访问我需要的内容?它是否以某种方式全局可用?我建议将操作中引发的错误添加到存储中,并从计算属性访问组件中的错误
这遵循单向数据流原则,并且由于计算的是被动的,因此应该为视图提供异步更新的机会
也许:
<span id="error-message" v-if="allErrors.has('phone')">error message</span>
computed: {
allErrors() {
return this.$validator.errors
.concat( this.$store.state.asyncErrors )
}
错误消息
计算:{
allErrors(){
返回此。$validator.errors
.concat(此.store.state.asyncErrors)
}
详细信息需要充实。将组件中的errors对象作为参数传递给操作。我非常喜欢这个想法。但是当我在操作之前记录这个。$validator.errors.items时,它会显示一个空数组(这是另一个问题)但是,当我从操作本身内部记录它时,它是空的。我只能向操作传递一个额外的参数吗?我相信操作和突变都接受一个有效载荷
参数,您可以使一个对象传递多个参数。您还可以对它们进行分解。因此,它类似于myAction({commit,state},{errors,other}{…}
,您可以通过dispatch(“myAction”,{errors:this.errors,other})调用它
。确切的语法可能会有所不同,但这是一般的想法。这对传递它起到了作用,但我的问题是,从操作中更新它实际上并不意味着会显示错误,除非我做错了什么。如果我将错误添加到错误包中,我希望它显示在我出错的页面(“电话”)上。first()但它似乎不是那样工作的。我是这样添加的:错误。添加('phone','This a cool error','This is for');