2017-08-09 2 views
3

Il me manque quelque chose. Comment puis-je utiliser vuex mapState avec plusieurs modules? En ce qui concerne comprendre, en plus de passer un objet en argument, mapState namespaced peut prendre deux arguments: namespace et un tableau de noms d'objets indiquant les membres des modules. Comme çavuex namespaced mapState avec plusieurs modules

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

Mais que se passe-t-il si je souhaite ajouter des objets à partir d'un deuxième espace de noms à calculer? par exemple. fournisseur comme ceci:

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

Actuellement, je suis la fusion des deux mapState comme ceci:

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

Et puis:

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

Il fonctionne, mais il est à peine la bonne façon de le faire. Ou est-ce?

Répondre

2

Utilisez le spread operator:

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

J'ai mal lu ces trois points comme dans le Documenation des points de suspension. Je ne suis toujours pas habitué à l'opérateur de propagation. – LongHike