收藏
回答

wx.switchTab跳转页面后重新执行onLoad()函数失败

在备注页面(1页面)执行wx.switchTab其中跳转回前一个页面(2页面)后执行2页面的onLoad(),跳转代码如下:

wx.switchTab({

            url: '../plan/plan',

            success: function () {

                var page = getCurrentPages().pop();

                if (page == undefined || page == null) return;

                page.onLoad();

            }

        });

在不同手机上结果不同,有的手机会执行2页面的onLoad函数,有的手机会执行1页面的onLoad函数,导致出错,请问一下大家有遇到这样的问题吗?还有同一台手机如果是真机测试和体验版也会有上面的情况出现


最后一次编辑于  2018-12-24
回答关注问题邀请回答
收藏

2 个回答

  • 杨泉
    杨泉
    2018-12-24

    switctTab清空tab之外的页面栈

    onload在switchtab的回调里执行

    出现这情况,只能说明清空页面栈是个异步行为

    导致getCuirrentPages的时候,结果不可预期


    换个思路解决吧

    譬如,switchtab的时候给url带参,tab页onshow回调里面捕获到此参数,重执行一遍onload函数中的代码

    2018-12-24
    赞同 1
    回复 1
    • Kyrene
      Kyrene
      2018-12-24

      不过提供了我用onshow函数,也可以解决问题。谢谢了!

      2018-12-24
      回复
  • Kyrene
    Kyrene
    2018-12-24

    谢谢,但是switchtab后面不可以带参数

    2018-12-24
    赞同
    回复 2
    • 杨泉
      杨泉
      2018-12-24

      sorry, 忘记了。。。。。丢人

      2018-12-24
      1
      回复
    • Kyrene
      Kyrene
      2018-12-24回复杨泉

      哈哈,没事,解析还是很清晰的。

      2018-12-24
      回复