收藏
回答

onUnload中调用wx.navigateBack导致小程序崩溃

在onUnload周期函数中调用wx.navigateBack()方法返回的tab页面,会导致小程序在真机上面直接崩溃,在模拟器上的表现是调用了两次onShow(),

onUnload() {
        wx.navigateBack({
            delta: 2,
        })
    }

使用wx.switchTab才解决

onUnload() {
        wx.switchTab({
            url: '/pages/cart/index',
        })
    }

直接崩溃这个就不应该了 @官方

回答关注问题邀请回答
收藏

5 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-09-27

    你好,问题未复现。请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2018-09-27
    有用
    回复 9
    查看更多(4)
  • 把糖还给我好不好~
    把糖还给我好不好~
    2019-12-31

    请问这个问题现在解决了吗?我也遇到了

    2019-12-31
    有用
    回复
  • 🍀cicelyCai
    🍀cicelyCai
    2019-08-19

    请问楼主,你这个问题解决了吗? 首先我提个建议:onUnload() 这个函数已经有一层返回到上一页的动作,然后你再用wx.navigateBack的话就会以上一页 为基础返回到某一个页面,然后写的delta是2的话是不是多返回了一层,而你那个页面又是tab页,tab页一般是在页面栈的0位置上的,没有再上一层了,不知道我的理解对不。 不知道官方支持这种写法不?

    2019-08-19
    有用
    回复
  • 韬々
    韬々
    2018-09-28

    你好 请问这个崩溃是小程序 ,还是整个微信客户端?

    2018-09-28
    有用
    回复 1
    • 牛利杰
      牛利杰
      2018-10-11

       是小程序崩溃

      2018-10-11
      回复
  • 牛利杰
    牛利杰
    2018-09-27

    从个tabbar页面A跳转到非tabbar页面B,跳转方式如下:

    "/pages/address/index" hover-class="className">
        to address

    在页面B中的onUnload周期函数中调用wx.navigateBack:

    Page({
        onUnload() {
            wx.navigateBack({
                delta: 2
            });
        }
    });

    然后页面A的onShow周期函数会执行两次:

    onShow: function() { // 显示/切入前台时触发
            console.log(this.route);
        },


    2018-09-27
    有用
    回复
登录 后发表内容