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

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

时间:2023-08-07 19:55:33浏览次数:44  
标签:es6 13 变量 success 箭头 外部 re data

在之前解密电话时,我们有请求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来判断是否使用箭头函数。

标签:es6,13,变量,success,箭头,外部,re,data
From: https://www.cnblogs.com/luyShare/p/17612562.html

相关文章

  • AtCoder Beginner Contest 313
    AtCoderBeginnerContest313-AtCoderA-ToBeSaikyo(atcoder.jp)从\(a_1\dotsa_{n-1}\)找出最大值与\(a_0\)比较即可#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'usingnamespacestd;signedmain(){ios::sync_with_st......
  • t113-c-lcd_lvgl篇
    之所以用lvgl,是因为lvgl实在是太轻便了,只用库就能够做处图形管理页面,非常方便。当然,主要是我不想再下载qtcreate了,虽然qt被运用的很广泛,但是目前我对lvgl的掌握程度还是更深一点1.从github下载https://github.com/lvgl/lvgl2.为下载的lvgl源码创建例程需要注意的是lvgl所使......
  • 洛谷 P1336 最佳课题选择 题解
    P1336最佳课题选择题解状态:考虑\(f_{i,j}\)表示前\(i\)种论文里面,一共写了\(j\)篇,的最少花费时间。转移策略:我们一次考虑每一种论文写多少篇。假设写\(k\)篇,\(k\in[0,j]\cap\mathbb{Z}\),有转移方程:\[f_{i,j}=min(f_{i-1,j-k}+cost(i,k)),k\in[0,j]\cap\mathbb{......
  • Atcoder ABC313_C-Approximate Equalization 2
    AT_ABC313_C-ApproximateEqualization2Description:给定一个整数序列\(A=(A_1,A_2,···,A_n)\),可以做以下操作任意次(可能为0):选择一个整数对\((i,j)\)\((1\leqi,j\leqn)\),使得\(A[i]-\)=\(1\),\(A[j]+\)=\(1\),求出使得数列\(A\)中的\(max-min\leq1\)所需的最少......
  • ES6需要关注的变化
    对象的方法简写,可以省略function:letobj={userName:'鸣人',age:10,getUserName(){returnthis.userName;},getAge:function(){returnthis.age;}}console.log(obj.getUserName());console.log(obj.getAge()); 箭头函数......
  • 配置环境变量--cnblog
    配置环境变量原因未配置环境变量错误原因:当前执行的程序在当前的目录下如果不存在,win10系统会在系统中已有的一个名为path的环境变量指定的目录查找。如果仍未找到,会出现以下的错误提示,所以进到jdk安装目录下便不会弄报错。配置环境变量的步骤我的电脑--属性--高级系统设......
  • 读取内核变量的几种方法
    作者[email protected]背景开发过程中,有时需要读取内核中某个变量的值,比如我想获取下面这个变量的内容:constcharlinux_banner[]= "Linuxversion"UTS_RELEASE"("LINUX_COMPILE_BY"@" LINUX_COMPILE_HOST")("LINUX_COMPILER")"UTS_VER......
  • 变量
    变量内存单位内存中可见的最小的单位是bit,代表0/1内存中用于存储数据的最小单位是8个bit,即1byte(字节)案例字符一个字符可以是英文字母,汉字,一个符号,占有2byte的内存大小编码:建立某一个数字与某一个字符之间联系的方法(编码)默认使用(UTF-16编码规则)案例......
  • [ABC313] C~E 题解
    [ABC313]C~E题解C-ApproximateEqualization2让所有的数字都尽量接近平均数,先算出平均数,然后把所有数字分成两份,一份要加,一份要减,因为平均数有余数,余数肯定给最大的几个,所以这样计算总共需要加减多少个,然后在加减里面取\(\max\)即可。时间复杂度:\(O(n\logn)\)#include......
  • Atcoder Beginner Contest 313
    CDEF有\(n(1\len\le40)\)张牌,每一张牌正面写上了数字\(a_i\),背面写上了数字\(b_i\)。最初所有牌都是正面朝上。有\(m\)个机器,每个机器有参数\(x_i,y_i(1\lex_i,y_i\len)\),\(x_i\)可以等于\(y_i\)。每个机器只能启动一次,并且有\(\frac{1}{2}\)的概率将牌\(......