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

该博客探讨了在页面栈管理中如何判断并执行回退操作。通过检查页面栈,当跳转路径存在于栈中时,使用`navigateBack`方法按需回退指定层数;若路径不存在,则调用`navigateTo`进行页面跳转。这种方法允许自定义页面回退行为,确保用户导航体验的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:要跳转路径是否存在于页面栈,存在则使用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

                })

        }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值