Vuex Store не изменяет состояние в файле vanilla JS - PullRequest
0 голосов
/ 07 апреля 2020

Когда пользователь выходит из системы на сервере, я пытаюсь сделать недействительным свой локальный сеанс с помощью vuex. Я импортировал магазин в файл vanilla JS. Казалось, все работает нормально, и когда я смотрю в свои Vue Devtools, я вижу, что мутация завершена. Но когда я снова загружаю состояние, оно, кажется, не мутировало и все еще имеет свое старое значение. Вот мой код Мой магазин:

    import Vue from 'vue';
import Vuex from 'vuex';
import createPersistedState from 'vuex-persistedstate';
// Import the module.
import currentContactModule from './currentContactModule';

Vue.use(Vuex);

export default function (/* { ssrContext } */) {
  const Store = new Vuex.Store({
    plugins: [
      createPersistedState({
        storage: {
          getItem: (key) => { return Vue.prototype.$session.get(key); },
          setItem: (key, value) => {
            return Vue.prototype.$session.set(key, value, { expires: 3, secure: true });
          },
          removeItem: (key) => { Vue.prototype.$session.remove(key); }
        }
      })
    ],
    modules: {
      // Then reference it.
      currentContactModule
    },

    // enable strict mode (adds overhead!)
    // for dev mode only
    strict: process.env.DEV
  });

  return Store;
}

JS ФАЙЛ:

import Store from '../store/index';

 Store().dispatch('myModuleName/doLogout');
          Vue.prototype.$q.notify({
            position: 'bottom-right',
            message: 'You have been logged out.'
          });

и вот мое действие;

  export function doLogout ({ commit }) {
  api.getClient()
    .then(api => { return api.logout(); });
  return new Promise((resolve) => {
    Vue.prototype.$session.destroy('sessionKey');
    commit('logoutCurrentContact');
    resolve();
  });
}

И вот моя мутация:

  export function logoutCurrentContact (state) {
  console.log(state.profilePicture);
  state.currentContact = {};
  state.profilePicture = '';
  console.log(state.profilePicture);
}

Обратите внимание, что когда я консоль регистрирую мутации здесь до мутации, он показывает правильное значение, а последний журнал консоли показывает пустую строку. Но когда я смотрю на Vue Devtools, он все еще показывает это, старые значения. mutation in devtoolsold state

Как мне сделать так, чтобы это правильно изменяет состояние из файла JS?

...