javascript - 具有多个模块的 vuex 命名空间 mapState

标签 javascript module namespaces vuex

我一定是遗漏了什么。如何将 vuex mapState 与多个模块一起使用?

据了解,除了将对象作为参数传递外,命名空间 mapState 还可以采用两个参数:命名空间和表示模块成员的对象名称数组。像这样

// an imcomplete vue
export default {
   computed: mapState('user', ['addresses', 'creditCards']) 
};

但是如果我想将来自第二个命名空间的对象添加到计算中怎么办?例如像这样的 vendor :

mapState('vendor', ['products', 'ratings']) 

目前我正在像这样合并两个 mapState:

let userMapState = mapState('user', ['addresses', 'creditCards']); 
let vendorMapState = mapState ('vendor', ['products', 'ratings']);
let mergedMapStates = Object.assign({}, userMapState, vendorMapState);

然后:

// an imcomplete vue
export default {
    computed: mergedMapStates
};

它有效,但它不是正确的方法。或者是?

最佳答案

使用 spread operator :

computed: {
  ...mapState('user', ['addresses', 'creditCards']),
  ...mapState('vendor', ['products', 'ratings']) 
}

关于javascript - 具有多个模块的 vuex 命名空间 mapState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594244/

相关文章:

java - Realm - 混合来自不同项目的模型

c++ - 如何访问嵌套匿名命名空间下定义的变量?

namespaces - OCaml 如何修复模块名称冲突

javascript - 使用 Deferreds 获取位置并显示 map

javascript - 如何对 Map 类型的对象进行字符串化

javascript - jquery tablesorter zebra on fadein 不起作用?

javascript - 无法绑定(bind)到 'property',因为它不是 'selector' 的已知属性

ruby-on-rails - alias_method_chain 已弃用 - Rails 5 升级

C++ 命名空间....匿名命名空间是合法的吗?

javascript - 从外部 URL 下载 XML 响应