用户一开始进入到小程序的首页,在首页列表中通过navigateTo跳转新页面进行一些操作,然后通过switchTab返回首页。发现跳转首页后数据并没有发生变化,在调试里面可以看到通过switchTab跳转到首页之后,页面并没有执行onLoad操作,所以数据和未授权之前相比是一样的。
解决:
(1)通过getCurrentPages()获取页面栈来进行操作
wx.switchTab({
url:'/pages/home/home',
success(){
let page=getCurrentPages().pop();
if(page==undefined || page==null){
return;
}
page.onLoad();
}
})
switchTab成功跳转后,此时可以拿到跳转后页面的page对象,从而调用页面onLoad方法重载页面
(2)利用reLaunch跳转页面
wx.reLaunch({
url:'/pages/home/home'
})
wx.reLaunch():关闭所有页面,打开到应用内的某个页面,会执行onLoad操作