__ob__: Observer是 Vue 对数据监控添加的属性。- 如果你是使用 push添加的对象信息就会出现_
_ob__: Observer。 - 当数据中包含这个属性时,数据是不可枚举、不可遍历的。
问题说明
在开发中,接口获取到数据,通过push获取到新的数组,直接打印获取的是正确结果,但是赋值给 this.data 的数据后又携带了 __ob__: Observer 数组如下图所示:
解决
方法一:
对数据进行深拷贝,拷贝之后的结果没有 __ob__:Observer 有效,推荐
JSON.parse(JSON.stringify(this.data))
方法二:
使用 Object.assign 可以将数组转换为普通数组,同时再对数组中的对象进行转换,有效
let newArr = Object.assign([],data).map(item => {
return Object.assign({},item)
})
方法三:
循环操作数据时,使用 for 循环, 不使用 forEach 或是 map,目前测试无效
for(let i=0;i<res.length;i++) {
this.data.push(res[i].date)
}
方法四:
设置定时器 SetTimeout 来获取数据,没试过
mounted() {
setTimeout(()=>{
//这里就写你要执行的语句即可,先让数据库的数据加载进去数组中你在从数组中取值就好了
},800)
}
总结
对数据进行一次深拷贝
参考文档