@Alline

Vuex, авториазация. Почему геттеры возвращают undefined?

Пытаюсь сделать авторизацию на Vue.js.
Есть метод регистрации. Он отрабатывает нормально.

registration ({commit}, data) {
    return new Promise((resolve, reject) => {
      axios
        .post(localStorage.getItem('url') + 'user/add', data)
        .then(response => {
          const token = response.data.result.token
          console.log(token)
          localStorage.setItem('token', token)
          axios.defaults.headers.common['Authorization'] = token
          commit('AUTH_SUCCESS', token)
          resolve(response)
        })
        .catch(err => {
          commit('auth_error', err)
          localStorage.removeItem('token')
          reject(err)
        })
    })
  },

В localStorage токен сохраняется, мутация AUTH_SUCCESS тоже выполняется, все вроде ок.

AUTH_SUCCESS (state, token) {
    state.status = 'success'
    state.token = token
  },

Но когда потом пытаюсь с помощью геттеров сделать проверку - выдает undefined.
Геттеры:

const getters = {
  isLoggedIn: state => !!state.token,
  authStatus: state => state.status
}

В роутере в beforeEach console.log(store.getters.isLoggedIn) уже undefined.
console.log(store.getters.authStatus) - тоже
store в роутер импортирован. Куда смотреть, что не так?
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы