vue mounted读取data中的数据失败

clipboard.png

从created中把数据传给this.lasttime;

clipboard.png

在mounted 获取到的this.lasttime还是原来data中的数值

clipboard.png

怎么才能把created中的数据在mounted中打印出来

阅读 12.7k
3 个回答

是因为异步的原因。
mounted是钩子函数,当vue组件挂载完后就会调用,把这个写在mounted其实就不应该。

1.如果是想要在接口返回后就立马使用lastime,应该为这个具体逻辑写个methods,然后在接口的回调里去调用。
2.把接口请求函数写成同步的也行,但这个就有一个成本,因为你是在created中去调用的,如果这个接口请求比较慢或有一些其他问题,会阻塞这个组件的渲染挂载

是异步的原因吧

methods:{
    async query(){
        const res = await this.$axios.get(url2)
        ...
        this.lasttime = this.act ...
        console.log(this.lasttime)
    }
}
created(){
   this.query()
}
mounted(){
    console.log(this.lasttime)
}

这样试一下呢

新手上路,请多包涵

你好,你在create中并没有将数据保存到Vue实例中,在axios中使用this,并不是Vue实例,所以你在this.lasttime = 的时候,是给axios创建了lasttime属性,并给axios进行了赋值,并不是异步原因。

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