vuex中state的数据发生变化,但是getters中的数据没有变化
在vue-devtool中可以看数据都是undefined,报错如下(此时Mutation中是使用state.xxx=xxx进行数据赋值):
或者报错:
[Vue warn]: Error in render: "TypeError: Cannot read property '这里随便是什么' of undefined",我这里提示的是name
查找好久的资料发现问题所在(官方文档):
在我的state中(singer是一个对象):
const state = {
singer: {}
}
而官方文档说明当数据是一个对象时,在motation里面的触发方法里面不能直接使用state赋值的方式,而应该使用Vue.set(state,'userstate',user);
改完代码后:
import Vue from 'vue' //记得导入Vue
import * as types from './mutation-types'
const mutations = {
[types.SET_SINGER](state, singer){
Vue.set(state,'singer',singer); //这是后来加的
// 不要使用这个赋值 state.singer = singer
}
}
export default mutations
最后代码正常运行。