微信小程序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来判断是否使用箭头函数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!