是否有从全局突变文件访问模块状态的方法?在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);