vue项目中我在methods中push了一个数组,但却找不到他的长度和push进去的值

在vue项目中,我在methods方法里掉用了高德的api转百度的经纬度

AMap.convertFrom(this.list[i].lnglats, 'baidu', function(meg, res) {
              let _lnglats = [res.locations[0].lng, res.locations[0].lat]
              // 替换原来的经纬度
              this.transformLnglats.push(_lnglats)
              console.log(this.transformLnglats)
              console.log(this.transformLnglats[0])
}.bind(this))

如果在里面答应的话可以访问到数组的长度和里面的内容,

clipboard.png

但是在方法的外面再次打印的时候就访问不到了

AMap.convertFrom(this.list[i].lnglats, 'baidu', function(meg, res) {
    let _lnglats = [res.locations[0].lng, res.locations[0].lat]
    // 替换原来的经纬度
    this.transformLnglats.push(_lnglats)
}.bind(this))
console.log(this.transformLnglats)
console.log(this.transformLnglats[0])
console.log(this.transformLnglats[0])
        

打印出来的结束是这样的

clipboard.png

可是却找不到里面的长度和数组,这是为哈呢?
唯一不一样的地方就是我标红的这块,这两个之间有什么区别呢?

阅读 4k
1 个回答

我觉得你的this出问题了,传入的时候的this可能还是vue的,但是后来的未必还是了,建议先var _this = this;试试

另外你的赋值在一个回调函数里去执行的,你在外面去获取有可能赋值还没有完成呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题