0
我有一个vuex存储,我想对其应用代码拆分。代码拆分vuex应用程序
继this tutorial我尝试这样做:
import Vuex from 'vuex'
import Vue from 'vue'
import createLogger from 'vuex/dist/logger'
Vue.use(Vuex)
const debug = process.env.NODE_ENV !== 'production'
const store = new Vuex.Store({
strict: debug,
plugins: debug ? [createLogger] : [],
state: {
loading: false
},
mutations: {
toggleLoading: (state) => {
state.loading = !state.loading
}
},
getters: {
loading: state => state.loading
},
actions: {
toggleLoading: ({commit}) => {
commit('toggleLoading')
}
}
})
import('./modules/userModule').then(userModule => {
store.registerModule('user', userModule)
})
import('./modules/tenantsModule').then(tenantsModule => {
store.registerModule('tenants', tenantsModule)
})
import('./modules/updatesModule').then(updatesModule => {
store.registerModule('updates', updatesModule)
})
export default store
但应用程序失败:
的WebPack内部:/// 24:739 [vuex]未知的getter:用户
我做错了什么?
如果您尝试访问您未定义的'user' getter,则会出现该错误。通过'this. $ store.getters.user'或'mapGetters(['user'])''。你在代码中的其他任何地方访问getter吗? – thanksd
@thanksd - 我确实定义了它,如果我不使用代码拆分,它就可以工作。我猜测它与现在加载模块异步的事实有关。 – Tomer
好的,你在你的'user'模块中定义它。我现在知道了。是的,这绝对是因为该模块在您尝试访问时尚未加载。不知道解决方案是什么,但... – thanksd