vuex-persistedstate не будет вызывать действия и перезагружать страницу - PullRequest
0 голосов
/ 02 июля 2018

нужна помощь.

В проект добавлено vuex-persistedstate, и мне кажется, что он не позволяет мне вызывать мои действия в магазине. Когда я запускаю диспетчер, пытающийся выйти из системы, страница перезагружается, localStorage сохраняет ту же информацию, что и при входе в систему, и вся панель Vuex для инструментов VueDev сбрасывается.

Это мой код.

store.js

import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

export default new Vuex.Store({
  strict: true,
  plugins: [
    createPersistedState()
  ],
  state: {
    token: null,
    user: null
  },
  mutations: {
    setToken (state, token) {
      console.log('mutation1')
      state.token = token
    },
    setUser (state, userData) {
      console.log('mutation2')
      state.user = userData.username
      state.cargo = userData.cargo
    }
  },
  actions: {
    setToken ({commit}, token) {
      console.log('action1')
      commit('setToken', token)
    },
    setUser ({commit}, userData) {
      console.log('action1')
      commit('setUser', userData)
    }
  }
})

Метод входа в компонент входа

async login () {
  try {
    const response = await AuthenticationService.ingresar({
      username: this.username,
      password: this.password
    })
    const { username, cargo, token } = response.data
    this.$store.dispatch('setToken', token)
    this.$store.dispatch('setUser', { username, cargo })
  } catch (error) {
    this.error = error.response.data.error
  }
}

Метод LogOut для компонента navbar

logout () {
  this.$store.dispatch('setToken', null)
  this.$store.dispatch('setUser', null)
  this.$router.push('/')
}

Все работает, если я отключаю vuex-persistedstate.

1 Ответ

0 голосов
/ 02 июля 2018

Извините, мой плохой. Получил href = "" по ссылке, вызывающей функцию выхода из системы. Это перезагружало страницу и не вызывало функцию. Поэтому ничего не делать с государством. Мне понадобились века, чтобы найти его. Не берите в голову. :)

...