网上很多解释是这样的:ob: Observer这些数据是vue这个框架对数据设置的监控器,一般都是不可枚举的
这个解释有点书面,很多人不太知道为什么要监控,我其它地方也是正常的数据为什么又可以枚举,为什么这里就这样拿不到值了。
其实产生这种情况大多数是你的代码中存在延迟赋值的操作,比如你写了异步请求返回的结果赋了值给arr,但是其它地方或者其它组件在还没拿到这个数据的时候就在调用循环这个arr,于是就成了undefined。
然后你很奇怪为什么console有数据,这就是开头说的vue的数据监控,你能console出这个数据是因为vue对这个数据设置的监控器,这个数据被改变将会输出改变的最终值,然后控制台看到的就是你请求的返回数据了,但是请求比较长的话还是会console出undefined的具体这个时间差是多少就不知道了也不是很重要了,检查一下自己的业务代码吧, 还有其它情况也有可能会出现vue中ob: Observer取不到值。
网友评论