收藏
回答

请问一下?我在封装wx.request时,that.setData报错。


请问一下,我在封装wx.request时,需要将返回的数据渲染到页面上,使用that.setData时,报错如上图错误,看了网上的在w.request外定义var that = this,使用后发生setData is not function的错误,请教如何处理这个问题?

复现代码:

function request(api ,url, edition,options) {

var that = this;

wx.request({

//项目的真正接口,通过字符串拼接方式实现

url: api + "/" + url + "/" + edition,

data: options,

method: 'POST',

header: {

'Content-Type': "application/json",

},

success: res=> {

console.log(res.data)

// 隐藏加载图标

wx.hideLoading()

that.setData({

//返回的数据

des: res.data.data,

})

},

fail: function () {

wx.hideLoading()

console.log("接口调用失败");

},

})

}



module.exports.request = request;


最后一次编辑于  08-28  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • 铭锋科技
    铭锋科技
    08-28

    封装这里别setData了直接返回给请求页

    08-28
    赞同 1
    回复
  • Run
    Run
    08-28

    你需要在data中定义你的数据,你现在setData到哪了?

    data:{
    des:{}//你需要渲染进来的数据,可以是对象,数组等
    }


    08-28
    赞同 1
    回复 1
    • K
      K
      08-28
      des已经定义了
      08-28
      回复
  • 烬
    08-28

    真是高手啊,比葫芦画瓢。你this指向的哪啊?

    08-28
    赞同 1
    回复 4
    • K
      K
      08-28

      可以说清楚点吗,小白一个

      08-28
      回复
    • 烬
      08-28回复K
      你把代码写到页面的js里面
      08-28
      回复
    • K
      K
      08-28回复
      这个项目经常要用这个请求,所以我想把他封账起来,其他页面直接引用。这样方便一些。
      08-28
      回复
    • 烬
      08-28回复K
      你也不能把业务也封装进去啊,你这个工具类只要返回数据就行了,具体怎么用,那是调用方的事
      08-28
      回复
问题标签