当页面加载时,我试图验证我的用户。因此,我有以下代码:
actions: {
nuxtServerInit ({dispatch, commit, app}, context) {
return new Promise((resolve, reject) => {
const cookies = cparse.parse(context.req.headers.cookie || '')
if (cookies.hasOwnProperty('x-access-token')) {
app.$axios.setToken(cookies['x-access-token'], 'Bearer')
api.auth.me2()
.then(result => {
commit('setUser', result.data.user)
resolve(true)
})
.catch(error => {
commit('resetUser')
resetAuthToken()
resolve(false)
})
} else {
resetAuthToken()
resolve(false)
}
})
}
但是,我有以下错误:无法读取未定义的$axios属性。我的密码怎么了?
发布于 2018-06-26 14:56:51
应用程序应该来自上下文,例如来自第二个论点。所以你的代码应该是
context.app.$axios.setToken(cookies['x-access-token'], 'Bearer')
发布于 2018-08-14 11:34:02
另一种方式。您可以在第二个参数中传递app
,这样
nuxtServerInit ({dispatch, commit}, {app}) {
完整的代码:
actions: {
nuxtServerInit ({dispatch, commit}, {app}) {
return new Promise((resolve, reject) => {
const cookies = cparse.parse(context.req.headers.cookie || '')
if (cookies.hasOwnProperty('x-access-token')) {
app.$axios.setToken(cookies['x-access-token'], 'Bearer')
api.auth.me2()
.then(result => {
commit('setUser', result.data.user)
resolve(true)
})
.catch(error => {
commit('resetUser')
resetAuthToken()
resolve(false)
})
} else {
resetAuthToken()
resolve(false)
}
})
}
}
https://stackoverflow.com/questions/51048217
复制