为啥我的赋值不能赋值到deat里面去,这是为什么。为呀为什么。咦,咦!

为啥我的赋值不能赋值到deat里面去

网友回复:

遇***:

将this改为that,然后在方法开始加入 const that = this

T***:

熊猫,是改哪一个this,(- _-)

杨***:

闭包

Y***:

楼上正解,在request的success函数里,this的上下文已经改变了

T***:

你可以帮我打一下吗。小熊猫。,,,非常感谢 

onLoad: function (options) {     var rs = [];     wx.request({       url: ',       header: {         ‘content-type’: ‘application/json’       },       success: function (res) {         console.log(res.data.showapi_res_body.pagebean.songlist);         rs = res.data.showapi_res_body.pagebean.songlist;         this.setsj(rs);       }     });   },   setsj: function (shuju) {     console.log(shuju);     this.setData({       recommends: shuju     }); 

T***:

啥子是闭包

麦***:

每个function的头名行都写上const that=this,然后里面凡是用到this的地方全部改成that,就oK了。

Y***:

onLoad: function (options) {

    const that = this   

    var rs = [];     wx.request({       url: ',       header: {         ‘content-type’: ‘application/json’       },       success: function (res) {         console.log(res.data.showapi_res_body.pagebean.songlist);         rs = res.data.showapi_res_body.pagebean.songlist;         that.setsj(rs);       }     });   },   setsj: function (shuju) {     console.log(shuju);     this.setData({       recommends: shuju     }); 

T***:

你们说的,咋个我有点乱呢

遇***:

按 YJFn  的写法就行了

爱盈利(aiyingli.com)移动互联网具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。