diff --git a/src/store.js b/src/store.js index a69503a12..361fcbdac 100644 --- a/src/store.js +++ b/src/store.js @@ -226,7 +226,7 @@ function installModule (store, rootState, path, module, hot) { const namespace = store._modules.getNamespace(path) // register in namespace map - if (namespace) { + if (module.namespaced) { store._modulesNamespaceMap[namespace] = module } diff --git a/test/unit/helpers.spec.js b/test/unit/helpers.spec.js index 4d536cf16..90b0a52eb 100644 --- a/test/unit/helpers.spec.js +++ b/test/unit/helpers.spec.js @@ -68,6 +68,32 @@ describe('Helpers', () => { expect(vm.a).toBe(7) }) + // #708 + it('mapState (with namespace and a nested module)', () => { + const store = new Vuex.Store({ + modules: { + foo: { + namespaced: true, + state: { a: 1 }, + modules: { + bar: { + state: { b: 2 } + } + } + } + } + }) + const vm = new Vue({ + store, + computed: mapState('foo', { + value: state => state + }) + }) + expect(vm.value.a).toBe(1) + expect(vm.value.bar.b).toBe(2) + expect(vm.value.b).toBeUndefined() + }) + it('mapMutations (array)', () => { const store = new Vuex.Store({ state: { count: 0 },