[vuex] Do not mutate vuex store state outside mutation handlers
解决:更改 Vuex 的 store 中的状态的唯一方法是提交 mutation,即通过 dispatch -> actions -> commit -> mutations 更新状态
methods: {
setUser () {
let user = {
'username': this.user.username,
'name': this.user.name,
'age': this.user.age
}
this.$store.dispatch('setUser', user)
}
}
export default {
state: {
user: {
'data': null,
'state': '',
'timestamp': 0
}
},
mutations: {
COMMON_USER_SET_CALLBACK: (state, user) => {
Vue.set(state.school, 'timestamp', new Date().getTime())
Vue.set(state.user, 'data', user)
}
},
actions: {
setUser ({ commit }, user) {
commit(types.COMMON_SCHOOL_SET_CALLBACK, user)
}
}
}