微信小程序报错:this.setData is not a function的解决办法

微信小程序 报错:this.setData is not a function

在page中定义的代码如下,代码会报错:this.setData is not a function

<strong> pasteEncryptedText:function()</strong>{
 let decryptedPass = this.data.decryptedPassword;
 if (decryptedPass == '' ){
 wx.showToast({
 title: '请先输入解密密码',
 mask: true,
 success: function (res) {
  setTimeout(function () {
  wx.hideToast();
  }, 4000);
 },
 });
 return;
 }else{
 wx.getClipboardData({
 <strong>success: function (res)</strong> {
  if ( res.data == '' ){
  wx.showToast({
  title: '剪贴板没有内容',
  mask: true,
  success: function (res) {
  setTimeout(function () {
   wx.hideToast();
  }, 4000);
  },
  })
  }else{
  console.log(decryptedPass);
  console.log(res.data);
  <strong>this.setData({
  encryptedTextDecode: res.data,
  originalTextDecode: desEncryptedDecrypted.decrypt(res.data, decryptedPass),
  });</strong>
  console.log(this.data.originalTextDecode);
  }
 }
 });
 }
 }

问题分析:在函数 pasteEncryptedText()里面嵌套调用另一个函数 wx.showToast(),而setData()是在wx.showToast()中调用的,此时this.setData()

中的this不是page,而是wx.showToast()这个对象了

解决方法:

<strong> 在函数pasteEncryptedText()一开始处将this对象保存:</strong>let that = this; 
pasteEncryptedText:function(){
 let decryptedPass = this.data.decryptedPassword; 
<strong>let that = this;</strong>
if (decryptedPass == '' ){
 wx.showToast({
 title: '请先输入解密密码',
 mask: true,
 success: function (res) {
 setTimeout(function () {
 wx.hideToast();
 }, 4000);
 },
 });
 return;
}else{
 wx.getClipboardData({
 success: function (res) {
 if ( res.data == '' ){
 wx.showToast({
  title: '剪贴板没有内容',
  mask: true,
  success: function (res) {
  setTimeout(function () {
  wx.hideToast();
  }, 4000);
  },
 })
 }else{
 console.log(decryptedPass);
 console.log(res.data);
 <strong> that.setData</strong>({
  encryptedTextDecode: res.data,
  originalTextDecode: desEncryptedDecrypted.decrypt(res.data, decryptedPass),
 });
 console.log(<strong>that.data.originalTextDecode</strong>);
 }
 }
 });
}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Thinkphp5微信小程序获取用户信息接口的实例详解

    Thinkphp5微信小程序获取用户信息接口的实例详解 首先在官网下载示例代码, 选php的, 这里有个坑 官方的php文件,编码是UTF-8+的, 所以要把文件改为UTF-8 然后在Thinkphp5 extend文件夹下建立Wxxcx命名空间,把官方的几个类文件放进去(这里要注意文件夹名, 命名空间名, 类名的, 大小写,一定要一样,官方的文件名和类名大小写不一样) 然后是自己的thinkphp接口代码: <?php /** * Created by PhpStorm. * User: le

  • 微信小程序getPhoneNumber获取用户手机号

     微信小程序getPhoneNumber获取用户手机号 小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等, 有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无效).将button中的open-type="getPhoneNumber",并且绑定bindgetphonenumber事件获取回调. <button open-type="getPhoneNumber"

  • 微信小程序 循环及嵌套循环的使用总结

    微信小程序 循环及嵌套循环的使用总结 关于微信小程序,最近被安排做微信小程序,首次接触,总体来说上手不是太困难. 对于小程序的循环问题颇有感触,因为自己绑定数据到界面无数次用到循环和嵌套循环. 对于我们在js中从接口中通过POST或GET请求获取数据存放到Page中定义的对象中: //首页话题列表 wx.request({ url: 'https://*******************', method: 'POST', data: { pageNum: 1, pageSize: 10 },

  • 微信小程序下拉刷新界面的实现

    微信小程序下拉刷新界面的实现 利用onPullDownRefresh函数设置下拉刷新功能 一.在app.json中,将window选项中的enablePullDownRefresh设为true "window":{ "enablePullDownRefresh":true } 或者在要刷新的界面的XXX.json中设置enablePullDownRefresh设为true { "enablePullDownRefresh": true } 二.利

  • 微信小程序中post方法与get方法的封装

    微信小程序开发post方法与get方法的封装 第一步:在utils文件夹下创建httpUtil.js文件 第二步:创建函数httpPost方法代码如下: function Post(url, data, cb, isShow, showNetError, that, showLoading) { if (showLoading == true || showLoading == undefined){ wx.showNavigationBarLoading(); wx.showLoading({

  • 微信小程序之蓝牙的链接

    微信小程序之蓝牙的链接 微信小程序蓝牙连接2.0说明: 1.本版本区分了ANDROID和IOS系统下蓝牙连接的不同方式. 2.兼容了更多情况下的链接包括: (1)未开启设备蓝牙,当监听到开启了蓝牙后自动开始连接. (2)初始化蓝牙失败后每3000ms自动重新初始化蓝牙适配器. (3)安卓端开启蓝牙适配器扫描失败,每3000ms自动重新开启. (4)IOS端获取已连接蓝牙设备为空,每3000ms自动重新获取. (5)安卓端蓝牙开始链接后中断扫描,连接失败了,重新开始扫描. (6)IOS端开始连接设

  • 微信小程序开发之好友列表字母列表跳转对应位置

    微信小程序开发之好友列表字母列表跳转对应位置 前言: 在小程序里实现微信好友列表点击右侧字母列表跳转对应位置效果.写了个demo,核心部分很简单,所以没多少注释,如果遇到问题就加群问我吧. 核心技术点: 1.小程序scroll-view组件的scroll-into-view, scroll-with-animation. scroll-y属性. 2.小程序的touch事件的应用. 3.Js定时器的应用. view页面代码: index.wxml class="container" sc

  • 微信小程序报错:this.setData is not a function的解决办法

    微信小程序 报错:this.setData is not a function 在page中定义的代码如下,代码会报错:this.setData is not a function <strong> pasteEncryptedText:function()</strong>{ let decryptedPass = this.data.decryptedPassword; if (decryptedPass == '' ){ wx.showToast({ title: '请先输入

  • 微信小程序报错: thirdScriptError的错误问题

    微信小程序报错 VM1305:1 thirdScriptError Cannot read property 'name' of undefined TypeError: Cannot read property 'name' of undefined     at z (http://127.0.0.1:38175/appservice/__dev__/WAService.js:2:1560728)     at Ie (http://127.0.0.1:38175/appservice/__

  • 微信小程序 免费SSL证书https、TLS版本问题的解决办法

    微信小程序 免费SSL证书https.TLS版本问题的解决办法 微信小程序与第三方服务器通讯的域名5个必要条件 1.一个已备案的域名,不是localhost.也不是127.0.0.1,域名不能加端口 2.加ssl证书,也就是https://~~~ 4.HTTPS 服务器的 TLS 版本支持1.2及以下版本,一般就是1.0.1.1.1.2要同时支持这三个版本,一个也不能少,要不然就会出现下面这种情况 5.微信小程序后台加上合法域名设置(一个月内改的次数是有限的,且行且珍惜)如下图 以上5个条件,必

  • 微信小程序出现wx.navigateTo页面不跳转问题的解决方法

    本文实例讲述了微信小程序出现wx.navigateTo页面不跳转问题的解决方法.分享给大家供大家参考,具体如下: 今天在做微信小程序的时候,做的商品购买流程.流程是这样的: 商品展示-->商品详情-->下单页面-->下单详情页面-->支付结果页面-->跳转订单详情页面. 但是在支付成功之后,点击按钮跳转,发现怎么也跳转不了到订单详情页面,前后log都能打印出来,证明已经执行了wx.navigateTo方法,但是跳转不成功,而且,坑爹的是也不报错. 翻看微信小程序开发文档,参考

  • 微信小程序实现Session功能及无法获取session问题的解决方法

    因为小程序原生不支持Cookie,因此也不支持Session. 网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码. 大概思路就是借助小程序本地储存+网络请求的header可读可写来实现类似浏览器的cookies保存session功能. 直接上代码 function NetRequest({url, data, success, fail, complete, method = "POST", header = { 'Content-type':

  • 微信小程序scroll-view实现上拉加载数据重复的解决方法

    微信小程序的 scroll-view 上拉加载更多的BUG(数据会多加载,甚至有重复数据). 问题描述:上拉一次,会多次触发触底函数 onReachBottom():换成自定义加载更多函数, 例如 loadMore(), 问题依旧存在. 生产环境:调试基础库 目前最新版本1.9.94 依旧存在这个问题. 解决方法:加状态控制变量,限制 触底函数/加载更多函数 的触发条件. 页面上拉加载更多后,看下图,有重复数据 通用前端wxml代码 search.wxml <!--pages/shop/sear

  • 微信小程序视图控件与bindtap之间的问题的解决

    在微信小程序中 最常用的<view>控件 可以用bindtap(冒泡反应) 如<view bindtap="ItemOnclick" data-mType="123">的形式绑定ItemOnclick事件并传递一个dataset,其包含一个名为mType的元素 值为123. 在某一次设计中 有如下结构: <view class="func-m" bindtap="ItemOnclick" data

  • 微信小程序:报错(in promise) MiniProgramError

    今天学习了小程序实现路由跳转,我在操作的时候在控制台出现以下错误信息. 翻译过来的意思是:(承诺中)微程序错误{"errMsg":"n"avigateTo:故障can未导航到选项卡页"}对象 问题原因: 经过查阅资料,知道使用navigateTo路由跳转方式,保留当前页面,跳转到应用内的某个页面.但是不能跳到 tabbar 页面. 解决办法:只需在js文件的点击事件中,配置跳转的url地址与tabbar中的跳转地址不一样就ok. 我就简单说一下我用navi

  • 微信小程序使用第三方库Immutable.js实例详解

    前言 Immutable JS 提供一个惰性 Sequence,允许高效的队列方法链,类似 map 和 filter ,不用创建中间代表.immutable 通过惰性队列和哈希映射提供 Sequence, Range, Repeat, Map, OrderedMap, Set 和一个稀疏 Vector. 微信小程序无法直接使用require( 'immutable.js' )进行调用,需要对下载的Immutable代码进行修改,才能使用. 原因分析 Immutable使用了UMD模块化规范 (f

  • 微信小程序实现红包功能(后端PHP实现逻辑)

    本文为大家分享了微信小程序红包功能的具体代码,供大家参考,具体内容如下 首先说明一点:微信小程序红包功能一定记得用企业付款到钱包功能,别用微信的现金红包接口,否则你就有踩不完的坑. 直接上代码了 微信小程序代码: index.js //抢红包相关 view_moneysure: function () { var that = this; wx.request({ url: app.globalData.baseurl +'api/wxopen/applet/grab',//这个链接是后端写的

随机推荐