最近在编写 vue 的网页时,碰到了一个奇怪的问题,一个数组更新的时候没有刷新。
data() {
return {
blocks: []
}
}
...
this.blocks = info.blocks;
我通过 watch blocks 来触发控件刷新,但奇怪的是有时候 blocks 会丢失观察,后续任何更改不再触发界面刷新。用各种姿势调试半天以后,终于发现了原因。
我的 info.blocks 是服务端返回的,有时候会是 undefined ,而 vue 的 data 一旦被设置为 undefined 了以后,就会丢失观察模式,因此,给 vue 的 data 赋值的时候,千万注意别写入 undefined!
这里记录下,免得下次再犯同样错误,并纪念一下我浪费的时间。