为什么我明明取到了数据,但是就是无法改变data()里的值,我好晕啊,

为什么我明明取到了数据,但是就是无法改变data()里的值,我好晕啊,

为什么我明明取到了数据,但是就是无法改变data()里的值,而且动态传值进组件也是一样没值?

http://img1.sycdn.imooc.com//climg/5d499f3600010feb05050375.jpg

http://img1.sycdn.imooc.com//climg/5d499f5200012ee103720039.jpg

http://img1.sycdn.imooc.com//climg/5d499f6e0001074c02650179.jpg

打印结果都是空空如也

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,只要可以确保这里赋值成功了,就可以使用,如果打印的话,在赋值后再打印,才可以打印出来数据,

也就是在http://img1.sycdn.imooc.com//climg/5d4a40560001794b02700024.jpg这步之后再打印(在这句代码的后面打印)。

同学可以再测试下,如果解决不了,建议把相关代码粘贴上来(不要截图)

如果帮助到了你,欢迎采纳~祝学习愉快~

  • 见信 提问者 #1
    数据现在取到了,只是created生命周期函数内,没有打印出结果误导了我,程序一开始先调用了 created函数,按我的理解,它调用了getProdoctData函数,应该会打印出数据,但结果打印的是空数组,因为程序一开始就调用了created函数,难道vue也要遵循js的作用域链吗?我被这几个生命周期函数搞得有些晕,不清楚为什么它们调用时俩面console.log出来的都是空数组,但又能确确实实地传值过去,比如,老师的视频,recommend组件里的created函数也是这样,打印的也是空数组,但值确实传了过去,我现在也是这样,不太理解
    2019-08-07 11:58:58
  • 见信 提问者 #2
    我这里一直都把它当做一个整体,只关注预想中的结果去了,没有注意到Promise带来的影响。
    2019-08-09 19:05:57
好帮手慕言 2019-08-07 18:21:18

同学你好,这个地方和同步异步有关。同步是会一行一行往下执行的。

下面的代码只会执行绿框里面的东西 然后 注册then,里面的东西先不执行,就去往下执行了,请求回来以后 才开始执行回调(then里面的代码)。同步是先于异步执行的。所以在created里面是打印不出数据的

http://img1.sycdn.imooc.com//climg/5d4aa490000179d907920310.jpg

同学可以再理解下。

如果帮助到了你,欢迎采纳~祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师