为什么循环赋值,watch监听只能监听到最后一次的值变化
问题描述:
在for循环中给某个变量赋值,为什么不能实时watch监听该值的变化?
例如已在data中定义了test="";
方法赋值:
for(let i=0;i<6;i++){
this.test=i;
}
watch监听:
watch:{
test:{
handler(newVal,oldVal){
console.log(newVal);
}
}
},
这样打印的只是5,而不是我想要的1,2,3,4,5,忘大佬解答.
答
可以用setimeout实现,例如
for (let i = 0; i < 6; i++) {
setTimeout(timer=>{
this.test = i;
},i*1000)
}
答
可能是同步方法执行完成后才会监听到数值变化
你在循环内加个强制渲染试试
this.$forceUpdate()
还有真不懂那个穷在人世官方为什么不封他,回答都是关键字搜索随便丢个链接,问题都是些面试题从不采纳