Vuex模块状态在全局突变中未定义



是否有从全局突变文件访问模块状态的方法?在Vuex文档中,我只找到了如何从命名空间模块访问全局资源

下面是我的性征结构。

在用户/state.js

const state = {
selected_users: [],
}
export default state;

然后在index.js中导入Users模块的状态、getter、突变、动作,如下所示:

import * as actions from './actions.js';
import * as mutations from './mutations.js';
import * as getters from './getters.js'
import state from './state.js'
export default {
namespaced: false,
actions,
mutations,
getters,
state,
}

在主存储文件中:

import Vue from "vue";
import Vuex from "vuex";
import { state } from "./state";
import * as getters from "./getters";
import * as actions from "./actions";
import * as mutations from "./mutations";
import users from './modules/users';
const modules = {
users
}
Vue.use(Vuex);
const store = new Vuex.Store({
state,
getters,
actions,
mutations,
modules,
});
export default store;

那么从全局突变文件中,当访问模块状态selected_users时,它是undefined

export const UPDATE_LIST = (state, list) => {
// do something with list

// then wants to use selected_users
console.log(state.selected_users);
}

您可以按如下方式访问全局存储

首先在main.js中导入全局的主存储文件

在user/state.js文件中编写以下代码。

const state = {
selected_users: [],
}
const getters = {
selected_users(state) {
return state.selected_users;
},
} 
export default state;

当访问模块状态时,可以使用下面的代码:

console.log(state.getters.selected_users);

最新更新