我在 Vuex 中成功创建了一个群组,但是如何从群组访问到基本/非群组状态?在这种情况下,我想从产品组的基本/非组状态中的状态访问用户令牌。
这是我的产品组
const product = {
state: () => ({
product: [
]
}),
mutations: {
retreiveProduct(state,product){
state.product = product
},
},
actions: {
retreiveProduct(context){
axios.defaults.headers.common['Authorization'] = 'Bearer ' + context.state.token
axios.get('/products')
.then(response=>{
context.commit('retreiveProduct',response.data)
})
.catch(error => {console.log(error)})
},
},
getters: {
}
}
从上面代码中的“context.state.token”获取token时出错
这是我的用户令牌代码
export const store = new Vuex.Store({
modules: {
product
},
state:{
token: localStorage.getItem('access_token') || null,
filter: 'all',
},
})
如果你看到,我已经声明了一个变量标记并用 access_token
填充它。我可以从产品组调用这个变量,还是必须在产品组中创建另一个令牌变量?
或者我必须让其他组保留令牌吗?
这个可以通过命名空间解决吗?
答案 0 :(得分:0)
由于操作在 Vuex 模块中,并且您正在访问的状态在 Vuex 存储根目录中而不是模块的状态中,因此您需要从 rootState
对象访问 context
而不是state
:
axios.defaults.headers.common['Authorization'] = 'Bearer ' + context.rootState.token
context
对象具有:
state
rootState
getters
rootGetters
commit
dispatch