小程序缓存问题

今天遇见了一个匪夷所思的bug:我有一个tabar,下面有对应的两个页面,我授权进入首页后,切换另一个页面,它就会自动跳转回首页...我又继续点击首页中的某个块,进入其下级页面,它立马又会跳转回首页...演示截图如下:
首先授权:

clipboard.png

然后进入首页后的样子及缓存:

clipboard.png

clipboard.png
然后点击切换个人中心:

clipboard.png
然后就高潮了(0.5s~2s内又立马自动跳转回来了):

clipboard.png
把我人都整蒙了,没办法我只能一直重现找原因,最后我终于发现出现这个问题的因素了(小程序编辑器上):当我清除缓存后,再次进入授权,确认授权后,进入首页,就会出现该问题,而当我刷新一下(ctrl+s)后,就正常切换了。在手机上,清理过缓存的手机如之前的步骤打开,会出现问题,没有清除缓存的手机,重新打开则正常。
可是问题因素发现了,但是具体是怎样产生的还是蒙的,也就没办法解决了,我的login授权页面代码也是按照手册上的代码敲的,加上了自己的login方法,主要就是请求后台接口,返回用户信息,并设置缓存,并跳转到首页:

 var userinfo = res.data.data;
 wx.setStorageSync('userinfo', userinfo);
setInterval(function(){
   wx.switchTab({
       url: '../index/index',
   })
},3000);

而且出现上述问题的时候 ,页面也并没有报错...这可真是,有没有遇到过该类问题的或者知道这类问题的老哥,帮忙指点指点啊

阅读 4k
2 个回答
var userinfo = res.data.data;
 wx.setStorageSync('userinfo', userinfo);
setInterval(function(){
   wx.switchTab({
       url: '../index/index',
   })
},3000);

中的setInterval是每3000毫秒就会执行一次,你是不是想用setTimeout啊

同步保存完用户信息后,为什么还要设置一个定时器去跳转呢?是不是可以这样:

var userinfo = res.data.data;
wx.setStorageSync('userinfo', userinfo);
wx.switchTab({
  url: '../index/index',
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题