2017-08-09 27 views
3

我必须失去了一些东西。如何使用多个模块vuex mapState?vuex名称空间mapState与多个模块

据了解,除了传递对象作为参数,命名空间mapState可以采取两个参数:命名空间和对象名表示的模块的构件阵列。像这样

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

但是如果我想从第二个命名空间添加对象来计算?例如供应商是这样的:

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 
}; 

它的工作原理,但它是很难做到这一点的正确方法。或者是?

回答

2

使用spread operator

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

我误读了这三个点作为documenation省略号。我仍然不习惯传播运营商。 – LongHike