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

互联网 18-6-5

这个问题的出现是因为,在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);         }     }

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

推荐阅读:

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

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

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

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 微信小程序
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:微信小程序开发中怎样使用Map对象

相关资讯