解决小程序页面栈十层后,点击不跳转

思路:要跳转路径是否存在于页面栈,存在则使用navigateBack回退到跳转路径。相当于手动修改页面栈,删除掉跳转路径后的所有页面栈。

//编写方法

goPage(url:跳转页面路径){

        const indexUrl='页面路径',        

        const delta=-1,                        //回退步数

        var pages=getCurrentPages();                //获取所有的页面路径

        //判断页面栈是否大于2层,并且跳转路径与自定义路径相同

        if(pages.length>2 && indexUrl==url){

                for(var i=0;i<pages.length;i++){

                        //跳转路径存在于页面栈中

                        if(url == pages[i].route){

                                //计算要回退的层级

                                delta = pages.length - i - 1;

                                break;

                        }

                }

        },

        if(delta == -1){                        //跳转路径不存在于页面栈

                wx.navigateTo({url:url})

        }else{

                wx.navigateBack({

                        delta:delta

                })

        }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值