nuxt改造项目,在vuex a 模块中通过rootstate访问b模块的state,数据为空,但页面中该数据是有值的
在 Nuxt 中使用的 Vuex 是一个插件,它默认情况下使用了命名空间。这意味着在访问其他模块的状态时需要使用 rootState
属性来访问根状态。
如果您在 Vuex A 模块中尝试访问另一个模块 Vuex B 的状态,可以按照以下步骤进行:
namespaced: true
设置了命名空间。const state = {
someData: 'some value'
}
const mutations = {
// ...
}
const actions = {
// ...
}
export default {
namespaced: true,
state,
mutations,
actions
}
rootState
属性来访问 Vuex B 模块的状态。const actions = {
someAction({ rootState }) {
console.log(rootState.b.someData)
}
}
如果页面上该数据有值,那么您可以在浏览器控制台中输出 rootState
对象以查看是否存在命名空间和属性。如果 someData
属性没有出现在 rootState.b
中,则可以检查命名空间和属性名称是否正确,以及属性是否已在 B 模块中初始化。