2017-09-13 1 views
1

Dans mon dossier /src/store/ je actions.js, index.js, mutations.js et state.js qui contiennent les informations suivantesComment réinitialiser/effacer les données d'un magasin vuex?

actions.js

export default {} 

index.js

import Vue from 'vue' 
import Vuex from 'vuex' 
import state from './state' 
import actions from './actions' 
import mutations from './mutations' 

Vue.use(Vuex) 

export default new Vuex.Store({ 
    state, 
    actions, 
    mutations 
}) 

mutations.js

et state.js

export default { 
    callingAPI: false, 
    searching: '', 
    serverURI: 'http://10.110.1.136:8080', 
    user: null, 
    token: null, 
    userInfo: { 
    messages: [{1: 'test', 2: 'test'}], 
    notifications: [], 
    tasks: [] 
    } 
} 

Maintenant, lorsqu'un utilisateur se connecte, je garde l'état comme

this.$store.commit('SET_USER', response.data) 

Maintenant, lorsqu'un utilisateur se déconnecte, je lance mon dossier dans lequel components/logout.vue il a le code suivant:

export default { 
    data() {}, 
    created() { 
    localStorage.setItem('vuex', null); 
    this.$store.commit('SET_USER', null); 

    window.localStorage.clear(); 
    window.sessionStorage.clear(); 
    } 
} 

Mais pour une raison quelconque, les données sont en quelque sorte a persisté.

+0

'Mais pour une raison quelconque, les données sont en quelque sorte persisted.' PERSISTE où? dans 'state.user' ou localStorage? – Pradeepb

+0

Il est persisté dans 'state.user' – hidar

+0

Je ne suis pas sûr de ce qui est mal, la même chose [ici] (http://jsfiddle.net/zfab6tzp/22/) – Pradeepb

Répondre

1

avez-vous essayé d'importer votre magasin dans le composant logout.vue?

const store = require('path/to/index.js'); 

puis dans votre méthode créée, essayez

store.default.commit('SET_USER', null); 
+0

oui, je l'ai essayé. ça ne marche pas – hidar