为什么我的状态变量没有在服务器端更新? Nuxt.js

时间:2020-04-27 15:40:42

标签: javascript vuex nuxt.js

在显示带有状态变量的页面之前,我尝试检查用户是否已连接。我使用中间件检查用户是否已连接,但状态变量返回错误的服务器端(在中间件中)并返回真实的客户端。

此处存储/index.js文件

export const state = () => ({
  isLogged: false,
  sessionKey: '',
  logoutRoute: {
  name: 'Logout'
  }
})

export const mutations = {
  setSession (state, text) {
    state.sessionKey = text
    state.isLogged = true
  },
  removeSession (state) {
    state.sessionKey = ''
    state.isLogged = false
  }
}

export const actions = {
  updatesession: ({ commit }, token) => {
    commit('setSession', token)
  }
}

这是我更新状态变量的方式

if (response.data.status) {
   // this.$store.commit('setSession', response.data.token)
   this.$store.dispatch('updatesession', response.data.token)
   console.log(this.$store.state.isLogged) // output true
   this.$nuxt.$router.replace({ path: '/portofolio/new' })
 } else {
   this.loginError = true
   setTimeout(() => {
     this.loginError = false
   }, 5000)
 }

这是我的中间件代码

export default function ({ store, redirect }) {
  // Si l'utilisateur n'est pas authentifié
  if (!store.state.isLogged) {
    console.log(store.state.isLogged) // output false
    return redirect('/login')
  }
}

欢迎任何帮助或建议,谢谢。

0 个答案:

没有答案