Когда пользователь выходит из системы на сервере, я пытаюсь сделать недействительным свой локальный сеанс с помощью 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, он все еще показывает это, старые значения.
Как мне сделать так, чтобы это правильно изменяет состояние из файла JS?