当前位置:网站首页>微信小程序路由再次跳转不触发onload

微信小程序路由再次跳转不触发onload

2022-07-05 06:23:00 Heerey525

情况:

1、从index页面跳转(wx.navigateTo)到add页面,第一次会进入add页面onLoad,但是第二次从index页面跳转(wx.navigateTo)到add页面,则不会进入add页面的onLoad
2、从add页面跳转(wx.redirectTo)到index页面,不会进入index页面onLoad

原因:

在首次进入一个页面的时候,会进入该页面的onLoad,但是跳来跳去,其实路由并没有销毁,该页面已经存在路由栈,所以被缓存起来,并不会再次进入onLoad

解决方法:

1、在onShow中进入取路由参数

onShow: function () {
    
    // 获取当前小程序的页面栈 
    let pages = getCurrentPages(); 
    // 数组中索引最大的页面--当前页面 
    let currentPage = pages[pages.length-1]; 
    // 打印出当前页面中的 options 
    console.log(currentPage.options)
}

2、switchTabsuccess回调中添加onLoad方法

wx.switchTab({
    
    url: '../index/index',
    success: function(e) {
    
      var page = getCurrentPages().pop();
      if (page == undefined || page == null) return;
      page.onLoad();
    }
})

参考资料:
小程序框架 /逻辑层 /页面路由
小程序使用 wx.navigateTo跳转到到页面,页面中的onload不执行?
微信小程序 switchTab跳转后新页面 onload 不触发的问题

原网站

版权声明
本文为[Heerey525]所创,转载请带上原文链接,感谢
https://heerey.blog.csdn.net/article/details/117914192