我正在尝试一个由命名空间模块和全局状态组成的状态。不幸的是,我可以访问全局操作,但无法获取全局状态属性。
如果我尝试在这样的组件中使用mapState,
df1 = (df.loc[:, df.isna().any()]
.xs('blue', axis=1, level=1)
.stack([0,1])
.reset_index(level=0, drop=True)
.rename_axis(('word','number'))
.reset_index(name='blue'))
print (df1)
word number blue
0 bar one 2.0
1 baz two 4.4
2 qux one 1.0
3 bar one 3.0
4 baz two 5.0
我可以访问地址,但是editMode始终未定义。映射操作可以完美运行,并根据Vuex Chrome工具更新状态。
但是我注意到,全局状态显示在其自己的“命名空间”“ global”下。因此,我尝试使用... mapState('global',['editMode'])进行映射,但收到一个错误消息,即命名空间不存在。
这是我的代码:
index.ts
computed: {
...mapState(['editMode']),
...mapState('address', ['addresses']),
}
modules / address.ts
import Vue from 'vue';
import Vuex from 'vuex';
import address from './modules/address';
import global from './global';
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
address,
global,
},
});
global.ts
export default {
namespaced: true,
state: {
addresses: [],
},
mutations: {
...
},
actions: {
...
},
};
答案 0 :(得分:1)
状态不受namespace
的影响。在某种程度上,它总是被命名空间。这样我们就不会发生碰撞。
要从模块访问状态,您需要详细说明:
computed: {
...mapState({
editMode: state => state.global.editMode
}),
...mapState('address', ['addresses']),
}