黔优媒体网-软文媒体自助发稿平台!
  1. 行业资讯
  2. 正文

微信小程序开发中全局变量缓存的问题处理

来源:黔优媒体网   时间:2024-09-19

这个问题的出现是因为,在input的事件,我没有找到更好的能监听键盘收回的方法,也是为了更好的用户体验吧,所以随之而来的问题就是全局变量,在赋值之后用户退出这个页面,全局变量被微信缓存了,然后造成,用户输入过一次之后,修改手机号失败的bug。

let Btel = #39; #39;,//防止用户恶意修改手机号
 Byzm = #39; #39;;
handleTel(e) {// 这里修改用户输入的手机号
 this.setData({
 tel:e.detail.value 
 handleYzm(e) {
 this.setData({
 Yzm:e.detail.value
 Byzm = e.detail.value; let psd = this.data.psd,
 yzm = this.data.Yzm;
 yzm == psd ? this.setData({isYzm:0}): #39; #39;;
 }, handleGetYzm() { let reg = common.telReg,
 val = this.data.tel; 
 if (!reg.test(val)) {
 wx.showModal({
 content: #39;请输入正确的手机号 #39;,
 showCancel:false,
 confirmColor: #39;#3cc51f #39;,//默认值为#3cc51f
 success:res = { if(res.confirm){
 this.setData({
 tel: #39; #39;
 }else {//发送验证码的时候用全局变量的手机号
 Btel = val;// 这里是全局的手机号 
 this.setData({
 isReset : true,
 isNoClick: true
 const data ={
 tel:val//传的是全局变量 
 utils.sendRequest(api.YanZhengMa, data, this.handleGetYzmSucc.bind(this));
 //button 定时器 let time = setInterval(()= { let phoneCode = this.data.time;
 phoneCode --
 this.setData({
 time : phoneCode
 }) if(phoneCode == 0){
 clearInterval(time)
 this.setData({
 isReset : false,
 isNoClick: false,
 time:60
 },1000)

//然后这一步是校验了用户在请求完验证码接口后 有没有修改手机好 然后保存handleSave() { let name = this.data.name, telNum = this.data.tel, yzm = Byzm, status = this.data.isYzm, card = wx.getStorageSync( #39;UserCard #39;); let timestamp= new Date().getTime(); if (yzm == #39; #39;) { wx.showModal({ content: #39;请输入验证码. #39;, showCancel:false, confirmColor: #39;#3cc51f #39; }) return false; } if (name!= #39; #39; telNum!= #39; #39;) { if(Btel != telNum) { utils.showModal( #39;手机号发生变化,请重新获取验证码。 #39;); }else { const data ={ distribution_id:card.distribution_id, post:{ user_name:name, user_tel:Btel, user_code:yzm user_id:card.user_id, password:yzm+timestamp utils.sendRequest(api.BindTel, data, this.handleSaveTel.bind(this)); }else { utils.showModal( #39;请填写完整信息哟 #39;); // 然后在 保存成功之后 用户点击确定 清空 全局变量 也可以在隐藏和卸载的生命周期里面清空全局变量。 handleSaveTel(res) { if (res.data.error == 0) { let go = this.data.go, id = res.data.data.id, lv = res.data.data.level; wx.showModal({ content: #39;绑定成功~ #39;, showCancel:false, confirmColor: #39;#3cc51f #39;,//默认值为#3cc51f success:res = { if(res.confirm){ Byzm = #39; #39;;//对小程序全局变量缓存进行清除 if (go) { wx.redirectTo({ url: #39;/pages/user/cash/cash #39; }else { if (id != 0) { let card = wx.getStorageSync( #39;UserCard #39;); card.distribution_id = id; card.distribution_level = lv; wx.setStorageSync( #39;UserCard #39;,card); wx.setStorageSync( #39;seller #39;, true) wx.switchTab({ url: #39;/pages/user/index #39; return false }else { utils.showModal(res.data.err_msg); }

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

微信小程序开发中怎样使用Map对象

微信小程序开发上拉加载如何实现

以上就是微信小程序开发中全局变量缓存的问题处理的详细内容,更多请关注php中文网其它相关文章!

微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!


【免责申明】黔优媒体网以上展示内容来源于用户自主上传、合作媒体、企业机构或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表黔优媒体网官方立场,请读者仅做参考,本文标题:微信小程序开发中全局变量缓存的问题处理;欢迎转载,转载时请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何违法/违规的内容,请您立即联系我们及时修正或删除。(邮箱号: kefu@qianu.com)