如何在登录时更新状态值

时间:2019-06-12 08:06:39

标签: vue.js vuex

如何在登录时更新状态值。这样我就可以在主页中使用相同的状态。

account.js

import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);

export const account = new Vuex.Store({
state: {
  id : 0
},
mutations: {
    setId(state, id) {
        state.id = id
    }
},
actions: {
  async actionA ({ commit }) {
          return new Promise((resolve, reject) => {
            setTimeout(() => {
              commit('setId', 33)
              resolve()
            }, 1000)
          })
   }
}
});

我需要更新login.js中的id值,并在home.vue中使用该值。

store.dispatch('actionA').then(() => {
    console.log('success');
})

1 个答案:

答案 0 :(得分:0)

https://vuex.vuejs.org/guide/actions.html#dispatching-actions-in-components

import { mapActions } from 'vuex'
export default {
  // ...
  methods: {
    ...mapActions([
      'addItems', // map `this.addItems()` to `this.$store.dispatch('addItems')`
    ]),
  }
}

在您的登录按钮上:

<button @click="addItems('your-id-here')">Log In</button>