微信小程序13 在请求url获取返回值后修改data变量的一个问题,es6箭头函数或外部定义变量

在之前解密电话时,我们有请求wx的api

复制代码
 wx.request({
          url: 'https://api.weixin.qq.com/sns/jscode2session',
          data: {

          },
          success: (re) => {
            //console.log('re:' + JSON.stringify(re));
            this.setData({
              sessionKey: re.data.session_key
            })
          }
        })
复制代码

在success成功后,我将session_key保存到了data的变量中。

但是有一个需要注意的点,我在sucess这部分的写法,用的是es6的箭头函数(可参考这篇),因此success中没有自己的作用域,this是指向wx.request外部的作用域,所以此时success中的this就是data部分的this,可以直接调用

this.setData来修改。

同样的,如果写成

sucess:function(re){ xxxxxxx }

那就必须在外部声明一个

var that = this;

that变量指向外部的this对象,这样在sucess中这么修改data部分

that.setData({ xxxxxx })

所以应该根据自身自否需要用到内部的this,或者是否需要用到外部的this来判断是否使用箭头函数。

posted @   luytest  阅读(105)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示