笔者这两天做微信小程序开发,遇到了两次进入tabBar的页面 不加载onLoad函数的问题
第一个问题:
笔者的逻辑是:
1.用户先在首页点击授权并登录
2.再点击我的,就可以看到用户的微信名和头像
注意!!!:如果用户按照我这个正常的逻辑就不会有问题 ,但笔者试了一下,如果我手贱,不先点击首页授权并登录 , 然后再进入我的 ,而是一来就点击我的,等我的加载完后,再切回首页,点击授权并登录 ,再切换到我的页面时,就会出问题!!
因为重新进入tabBar我的页面 后不再进入onLoad函数,由于笔者是在onLoad函数中更新数据,结果不进入了,啥都拿不到!!
解决方案
呵呵,在onShow函数里面强制进入一遍onLoad
第二个问题:
笔者解决好上一个问题后,点击 授权并登录 进入到一个登录页面填好自己的ID和密码后,点击登录 使用wx.switchTab再次进入首页的时候!!结果又没有刷新数据
笔者以为又是上一种问题 , 果断onShow里面再执行一下this.onLoad函数,结果还是无效
原因笔者猜测是因为 从非tabBar页面的其它页面用wx.switchTab切到tabBar页面的时候可能连生命周期函数都不会进入加载......
解决方案:
换wx.reLaunch就对了