这节6分11秒处有很多this这些this指什么?可是改成const{lisData}=data吗?

这节6分11秒处有很多this这些this指什么?可是改成const{lisData}=data吗?

这节6分11秒处有很多this这些this值什么?http://img1.sycdn.imooc.com//climg/5fceeee1097ecb7c06320312.jpg

this.listData=data  可以换成 const{lisData}=data吗?相当于把data里面的数据赋值给外面新建的listData空数组。最后照说应该变成这个样子,如何才能rankperiod,和rankType获取到data里面的数据呢?这里面的逻辑没明白。

下文简单因为接口中就有swiperList,couse..这些项,建立空数组然后直接赋值给他们三个,setData就完成了。


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

在这里输入代码,可通过选择【代码语言】突出显示

正在回答 回答被采纳积分+1

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

1回答
好帮手慕慕子 2020-12-08 15:07:54

同学你好,对于你的问题解答如下:

  1. 多处的this都是指向当前的Page。

  2. this.listData=data  可以换成 const{lisData}=data吗? 这里是不可以的,原因如下:

    this.listData =data 相当于给前面声明的属性listData进行重新赋值,如下图所示:

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

    使用this.listData这种方式,在其他地方也可以通过this访问到listData改变后的值。如下图所示:

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

    如果直接写成const {lisData} =data,由于data中没有listData同名的属性,无法解构,所以不可以写成const  {listData} = data 

  3. 同学的意思是指从返回的数据data中获取rankPeriod和rankType吗?如果是这样的话,那么是不可以的,因为这两个属性是老师自定义的,返回的数据中并没有rankPeriod和rankType这两个数据,如下:

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

    因为老师定义的数据里面有这两个属性,才可以解构,如下图所示:

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

    如果不是指这里的话,可以详细下具体指的是哪里,便于帮助同学准确的定位与解决问题。

  4. 是的,接口返回的数据中有swiperList,couse这些数据。同学理解是对的。

祝学习愉快~

  • 提问者 Vigorous阿炎 #1

    const{lisData}=data,老师我要是用这种方式表示的话是不是就得写成这样?

    const{lisData:{data}}=data

    2020-12-08 16:04:11
  • 好帮手慕慕子 回复 提问者 Vigorous阿炎 #2

    同学你好,如下图所示的写法是不可以实现的。

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

    如果不想this.listData = data这种写法,老师给同学提供另一个实现的思路,具体参考下面这种写法。如下:

    1、将listData放在data属性下

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

    2、不能使用解构赋值的方式, 直接声明listData, 将data赋值给它,之后再使用setData方法更改data属性下的listData属性值。

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

    3、在其他方法中,使用this.data.listData获取对应的值。如下:

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

    经过上述修改后,是可以正常实现效果的

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

    不过推荐同学参考视频中老师讲解的方式,代码书写会更简洁一点,

    祝学习愉快~

    2020-12-08 17:14:55
  • 提问者 Vigorous阿炎 回复 好帮手慕慕子 #3

    知我者赵兄也。之前案例一直在data里面用数据,换成外面很多不理解了,现在老师用两种方式表示大概明白了为什么老师要把LIstData写外面了,这样少获取一个层次。看来我问问题问到点上了。 

    给老师点赞,牛牛牛!

    2020-12-08 18:17:37
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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