微信小程序-Cannot read property ‘setData‘ of undefined;at api request success callback function(解决)

导读:本篇文章讲解 微信小程序-Cannot read property ‘setData‘ of undefined;at api request success callback function(解决),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题: 微信小程序中提示错误:

问题源码:

onLoad: function() {
    wx.showLoading({
      title: '加载中…',
    })
    try {
        // var self = this
        wx.request({
          url: app.url+'/xxx',
          method:'post',
          data:{
            "index":"hello"
          },
          success:function(e){
            this.setData({//这一句出错了
              Total:e.data,
            })
            wx.hideLoading({})
          },
          fail:function(e){
          wx.hideLoading({
            },
          })
          }
        })
    } catch (error) {
      wx.hideLoading({})
      wx.showToast({
        title: '加载失败',
      })
    }
  },

Cannot read property ‘setData’ of undefined;at api request success callback function
在这里插入图片描述

解答:

这是因为this的作用域比较短,当进入回调函数success中的时候,this就会被消灭了。
所有会出错显示没有定义

方法

用变量定义解决
var self = this
后面使用self.xxx进行调用即可
在这里插入图片描述

修改后的代码
onLoad: function() {
    wx.showLoading({
      title: '加载中…',
    })
    try {
    	//这里使用this赋值给self
		var self = this <===1 这里修改了
        wx.request({
          url: app.url+'/xxx',
          method:'post',
          data:{
            "index":"hello"
          },
          success:function(e){
          	//这里使用self即可
            self.setData({<===2 这里修改了
              Total:e.data,
            })
            wx.hideLoading({})
          },
          fail:function(e){
          wx.hideLoading({
            },
          })
          }
        })
    } catch (error) {
      wx.hideLoading({})
      wx.showToast({
        title: '加载失败',
      })
    }
  },

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119301.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!