我一定是遗漏了什么。如何将 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/