vue.js - 是否有可能让哪个组件调用一些动作 Vuex?
问题描述
是否有可能让哪个组件调用一些动作 Vuex ?
我从 vuex 操作返回一个承诺,并在组件中做出一些决定,作为在各个字段上设置错误消息,但我想尽快在 component.$validator.errors 上设置我收到 http 响应(在操作方法中)
这是可能的和一个好的方法吗?
解决方案
在 Vuex 中,当您调用突变或操作时,您可以在调度调用的同时发送一个对象,如果您想跟踪调用操作的组件,您也可以将其作为对象的一部分发送。更好的是,如果您使用 typescript,您可以让通过 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
}
在这里,我们将组件的名称作为参数发送,因此可以在我们的动作处理程序中检查它,或者您可以直接将其传递给突变,但我认为如果您打算构建前者更可能是这种情况逻辑成这个。
至于这是否是一个好方法,答案是相当主观的,我个人认为上述方法没有任何问题。尽管我认为如果大多数组件从未被检查过,或者添加的数据最终变成无意义的绒毛,与每次调用一起传递,我认为这是一种反模式。
推荐阅读
- docker - 安装卷时,docker 映像中的文件消失
- android - 打开某些片段时如何在工具栏上隐藏/显示图标
- sql-server - 将带有名称空间、属性等的未知 XML 读入完整的 EAV 列表
- c++ - 有什么方法可以获取从 C++ 中包含的头文件导入的所有函数名称?
- javascript - 如何使用 Python 投射光线并检测 3D 对象上的相交点?
- c# - Bootstrap网格问题,android和IOS结果显示不一样
- flutter - 如何将数据从第三屏传递到 Flutter 中的第一屏?
- python - 不同机器python代码上的不同输出
- yaml - Yaml / Puppet - 仅使用 yaml 配置中的名称服务器获取接口名称
- c# - 从绑定到 DataGridView 的对象列表中捕获异常