vue中为什么[__ob__: Observer]下无法取到数据

vue中为什么[__ob__: Observer]下无法取到数据,可是控制台明明有数据
图片描述

图片描述

不知道是否因为promise的原因?

阅读 27.5k
1 个回答

问题出在异步上,跟 [__ob__: Observer] 无关

原因在与,你同时发起了几个请求,但是 jsonp() 调用结果返回的顺序不确定,可能会导致 index=1then() 函数比 index=0then() 函数先执行,此时 this.detailId 数组只有一个值,而你取的时候是 this.detailId[1](因为 index=1的结果先返回),所以报错了

下面提供一种修复的方式,在 then() 函数里做点改动:

// remove
// this.detailId.push(new Movie(res.id, res.wish_count))

// add
this.$set(this.detailId, index, new Movie(res.id, res.wish_count))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏