是否可以让哪个组件调用某个动作Vuex?
我从vuex操作返回了一个承诺,并在组件上做出一些决定,作为在各个字段上的设置错误消息,但我想在component。$ validator.errors上设置asap我收到http响应(在操作方法中)
那是可行的且好的方法吗?
答案 0 :(得分:1)
在Vuex中,当您调用突变或动作时,可以在分派调用旁边发送对象,如果要跟踪调用动作的组件,也可以将该对象作为对象的一部分发送。更好的是,如果您使用打字稿,则可以使通过Vuex发送的所有对象都扩展特定的类。但是请注意,发现哪个组件称为动作或突变不是Vuex的固有行为。
请考虑以下内容:
try{
let out = await this.$store.dispatch('someActionHandler', {referingComponent: this.$options.name, someParam:[1,2,3]})
} catch (e){
// Lets deal with the problem
}
在这里,我们将组件的名称作为参数发送,因此可以在我们的动作处理程序中对其进行检查,或者也可以将其直接传递给突变,尽管我认为如果您认为前者更可能发生这种情况计划在其中构建逻辑。
至于这是否是一个好的方法,答案是相当主观的,我个人认为上述方法没有任何问题。尽管我认为如果不检查大多数组件或者添加的数据最终变得无意义,并且在每次调用时都变得毫无意义,那是一种反模式。