vue 深度监听watch数组对象,可以执行watch方法,但是得到的新旧值相同的 问题解决方案
首先说一下,watch的基本用法:watch: {indexList: {handler(newVal, oldVal) {if (this.indexList.length !== 0) {this.rightBtnText = '确定';}},deep: true}}...
·
首先说一下,watch的基本用法:
watch: {
indexList: {
handler(newVal, oldVal) {
if (this.indexList.length !== 0) {
this.rightBtnText = '确定';
}
},
deep: true
}
}
// 通过 watch 监听indexList的变化,有变化就执行里面的方法,但是输出的的newVal, oldVal是一样的,很奇怪。
然后就百度,各种找解决方法 ,
解决办法如下:
加个compute用函数再返回一下这个值, 再用JSON.parse() 这个方法转一下,目的是破坏原型链:
computed:{
listData(){
return JSON.parse(this.list);
}
},
watch: {
listData: {
handler(newVal, oldVal) {
if (this.indexList.length !== 0) {
this.rightBtnText = '确定';
}
},
deep: true
}
}
这样输出的 值 就不同了
更多推荐
已为社区贡献6条内容
所有评论(0)