解决小程序路由超过10层限制

新建 navroter.js

javascript 复制代码
// 路由判断,小程序路由超过10层限制
// 避免小程序商品重复切换导致页面到结算单页时无法跳转到收货地址页,所以这里层级限制最大数为8
const MAX_VALUE = 8
export function navigateTo(url) {
    let pages = getCurrentPages()
    let dlt = ''
    // 查找目标页在页面栈的位置
    for (var i = 0; i < MAX_VALUE; i++) {
        if (pages[i]) {
            if (pages[i].$page && pages[i].$page.fullPath && (pages[i].$page.fullPath == url)) {
                dlt = i + 1; //目标页在栈中的位置
                break;
            }

        }
    }
    // 如果有重复则返回到页面栈页面
    if (dlt) {
        uni.navigateBack({
            delta: pages.length - dlt
        })
    } else {
        if (pages.length < MAX_VALUE) {
            uni.navigateTo({ url: url })
        } else {
            uni.redirectTo({ url: url })
        }
    }
}

main.js 全局引入

javascript 复制代码
import { navigateTo } from '@/utils/navroter.js';
Vue.prototype.navigateTo = navigateTo;

使用

javascript 复制代码
this.navigateTo(`/goods-module/goods?goods_id=${goods.goods_id}`)
相关推荐
Cobyte几秒前
AI 的个人便签纸:Claude Code 的 TodoWrite 模式
前端·后端·aigc
克里斯蒂亚诺更新6 分钟前
微信小程序体验版可以获取当前位置但是正式版不可以-办法解决
微信小程序·小程序
风兮雨露9 分钟前
Java 从入门到精通,前端资料
java·开发语言·前端
资深前端之路13 分钟前
微信小程序节点最大限制为5000个
微信小程序·小程序
ZC跨境爬虫13 分钟前
跟着 MDN 学CSS day_43:CSS布局挑战——从浮动到弹性盒与栅格的综合实践
前端·css·ui·html·tensorflow
Qres82122 分钟前
Hexo博客本地配置
前端·博客·hexo
Bigger23 分钟前
GitLab-Runner + AI 代码审查服务 + 远程大模型 全套部署运维实战
前端·ci/cd·ai编程
_xaboy24 分钟前
开源AI表单设计器 FcDesigner v3.5 版本发布!
前端·vue.js·低代码·开源·表单
爱讲故事的24 分钟前
操作系统第三讲:Context Switch —— 用户态如何安全地进入内核态?
前端·javascript·安全
light blue bird35 分钟前
支轴事件任务线程执行工序路径的图表组件
前端·jvm·windows