为啥我的赋值不能赋值到deat里面去
发布于 5 年前 作者 nama 8470 次浏览 来自 问答

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

10 回复

一会that一会this的 烦死了

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

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

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

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

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

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

YJFn  的写法就行了

啥子是闭包

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

回到顶部