您好,欢迎访问一九零五行业门户网

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

这个问题的出现是因为,在input的事件,我没有找到更好的能监听键盘收回的方法,也是为了更好的用户体验吧,所以随之而来的问题就是全局变量,在赋值之后用户退出这个页面,全局变量被微信缓存了,然后造成,用户输入过一次之后,修改手机号失败的bug。
let btel = '',//防止用户恶意修改手机号 byzm = '';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}):''; }, handlegetyzm() { let reg = common.telreg, val = this.data.tel; if (!reg.test(val)) { wx.showmodal({ content:'请输入正确的手机号', showcancel:false, confirmcolor:'#3cc51f',//默认值为#3cc51f success:res =>{ if(res.confirm){ this.setdata({ tel:'' }) } } }) }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('usercard'); let timestamp= new date().gettime(); if (yzm == '') { wx.showmodal({ content:'请输入验证码.', showcancel:false, confirmcolor:'#3cc51f' }) return false; } if (name!=''&&telnum!='') { if(btel != telnum) { utils.showmodal('手机号发生变化,请重新获取验证码。'); }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('请填写完整信息哟'); } },// 然后在 保存成功之后 用户点击确定 清空 全局变量 也可以在隐藏和卸载的生命周期里面清空全局变量。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:'绑定成功~', showcancel:false, confirmcolor:'#3cc51f',//默认值为#3cc51f success:res =>{ if(res.confirm){ byzm = '';//对小程序全局变量缓存进行清除 if (go) { wx.redirectto({ url: '/pages/user/cash/cash' }) }else { if (id != 0) { let card = wx.getstoragesync('usercard'); card.distribution_id = id; card.distribution_level = lv; wx.setstoragesync('usercard',card); wx.setstoragesync('seller', true) } wx.switchtab({ url: '/pages/user/index' }) } } } }) return false }else { utils.showmodal(res.data.err_msg); } }
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
微信小程序开发中怎样使用map对象
微信小程序开发上拉加载如何实现
以上就是微信小程序开发中全局变量缓存的问题处理的详细内容。
其它类似信息

推荐信息