解决computed监听Vuex中state对象中的对象属性时不生效的问题
computed属性监听对象时候,若对象的引用地址未改变,那么computed将不会检测到。(比如object中的某个key对应的value发生了变化,computed检测不出来)原写法export default {namespaced: true,state: {shareInformation:{other:
·
computed属性监听对象时候,若对象的引用地址未改变,那么computed将不会检测到。(比如object中的某个key对应的value发生了变化,computed检测不出来)
原写法
export default {
namespaced: true,
state: {
shareInformation:{
other: {}//获取时为Null
...
}
},
mutations: {
addInformation(state,info){
let data = Object.assign(state.shareInformation,info);
//此时state.shareInformation的值改变了,但是引用地址没变
state.shareInformation = data;
},
}
}
正确写法
export default {
namespaced: true,
state: {
shareInformation:{
other: {}
...
}
},
mutations: {
addInformation(state,info){
//创建一个新的对象,将state.shareInformation,Info,对象复制到新对象中
let data = Object.assign({},state.shareInformation,info);
//将state.shareInformation指向新对象的引用地址
state.shareInformation = data;
},
}
}
更多推荐
已为社区贡献12条内容
所有评论(0)