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

发布于 7 年前作者 nama8589 次浏览最后编辑 7 年前来自 ask

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

10 回复
nzhao
nzhao1 楼6 年前

一会that一会this的 烦死了

fangshen
fangshen2 楼6 年前

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
    }); 

jiangguiying
jiangguiying3 楼6 年前

wx.request的success函数里,this的上下文已经改变了,所以要在外面先定义一个const that = this,把this存起来,在wx.request里用that就行了

caowei
caowei4 楼6 年前

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

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
    }); 

yong19
yong195 楼6 年前

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

changlei
changlei6 楼6 年前

谢谢你们了(↖(^ω^)↗)

changxiulan
changxiulan7 楼6 年前

YJFn  的写法就行了

naxia
naxia8 楼6 年前

啥子是闭包

jie96
jie969 楼6 年前

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

uhuang
uhuang10 楼5 年前

闭包