解决小程序路由超过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}`)
相关推荐
wuaro22 分钟前
JS的深浅拷贝
前端·javascript·html
说私域1 小时前
定制开发开源AI智能名片S2B2C商城小程序:技术赋能商业价值实现路径研究
大数据·人工智能·小程序·开源
Hamm1 小时前
用一种全新的方式来实现i18n,和魔法字符串彻底说拜拜
前端·vue.js·typescript
说私域1 小时前
基于开源AI大模型AI智能名片S2B2C商城小程序,探究私域电商中人格域积累与直播电商发展
人工智能·小程序·开源·零售
摸鱼仙人~1 小时前
React: hook相当于函数吗?
前端·javascript·react.js
百锦再1 小时前
React编程高级主题:错误处理(Error Handling)
前端·javascript·react.js·前端框架·vue·web·angular
阿里巴巴首席技术官1 小时前
CSS 高级用法
前端·css
墨绿色的摆渡人2 小时前
论文笔记(七十五)Auto-Encoding Variational Bayes
前端·论文阅读·chrome
雅致教育2 小时前
基于微信小程序的医院挂号预约系统设计与实现
微信小程序·小程序
今晚吃什么呢?2 小时前
前端面试题之CSS中的box属性
前端·css