uniapp微信小程序切换到tabber页面没有自动刷新

前言

通过uni.switchTab跳转到tabber页面比如个人中心页面,更新的数据没有刷新。导致页面的数据还是修改之前的

解决方法

在uni.switchTab()加入回调函数;
uni.switchTab成功跳转后调用success,此时可以拿到跳转后页面的page对象,从而调用页面onLoad方法重载页面。

uni.switchTab({
    
    
     url: 'pages/mine/index',
     success: function (e) {
    
    
         // pop() 方法用于删除数组其他元素并返回数组的最后一个元素
         let currentPage = getCurrentPages().pop(); //当前页面
         if (currentPage  == undefined || currentPage == null) return;
         currentPage.onLoad(); //页面存在刷新当前页面
         //currentPage.onShow()
         //currentPage.onReady()
        // 或者执行其他生命周期刷新
      },
   });

或者

uni.switchTab({
    
    
     url: 'pages/mine/index',
     success: function (e) {
    
    
         let data = {
    
     id: 0 } //要传递的参数,不能带在url后面
         let pages = getCurrentPages(); //当前页面栈
         let currentPage = pages[pages.length - 1] //当前页面
         if (currentPage == undefined || currentPage == null) return;
         currentPage.onLoad(data); //页面存在刷新当前页面
         //currentPage.onShow()
         //currentPage.onReady()
        // 或者执行其他生命周期刷新
      },
   });

两种方法只是获取当前页面路由地址的方式不一样,而且第二种方法加了传参。

参考:
getCurrentPages()的总结

猜你喜欢

转载自blog.csdn.net/weixin_45811256/article/details/127567505