关于 vue data 数组 更新渲染的问题

页面加载,然后从后台获取数据,然后用set绑定到data中的数组,可在mounted中想要使用更新过的数据,始终获取不到,也应该是异步加载的问题,就是解决不了,求解决方法。

  //axios 数据获取  created中
    innerBase().then(res =>{
      this.$set(this.$data,'musicList',res.data.playlist.tracks)  
      //这里获取到数据,并更新到了musicList中
    })
data() {
    return {
        musicList:''
    }
}
//mounted中
     console.log(this.musicList)  //获取不到赋值过的数组 null
     this.playMusic(this.musicList[0]);
阅读 4.1k
2 个回答

因为是异步调用,等你数据过来的时候,mounted中已经执行完了,所以拿不到数据
你可以把created中的方法放到mounted中执行,返回数据后在进行其他操作

vue的生命周期没有理解到位,异步操作有响应时mounted已经执行完了,如果你想在data有数据时调用,可以使用updated或者beforeUpdate这两个生命周期钩子

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