2017-08-09 54 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