当前位置: 首页 > article >正文

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

新建 navroter.js

// 路由判断,小程序路由超过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 全局引入

import { navigateTo } from '@/utils/navroter.js';
Vue.prototype.navigateTo = navigateTo;

使用

this.navigateTo(`/goods-module/goods?goods_id=${goods.goods_id}`)


http://www.kler.cn/news/134601.html

相关文章:

  • 面试题c/c++--语言基础
  • SDL2 播放音频数据(PCM)
  • TP_Link WR886N 硬改闪存16M内存64M,刷入openwrt
  • JSP 四大域对象
  • 分类预测 | Matlab实现基于PSO-SDAE粒子群优化算法优化堆叠去噪自编码器的数据分类预测
  • 【开源】基于JAVA的超市自助付款系统
  • NewStarCTF2023 Reverse方向Week3 ez_chal WP
  • Unity开发之C#基础-集合(字典)(Dictionary)
  • 【C++】​——多态性与模板(其一)
  • 前端 webpack 面试题
  • nginx学习(3)Nginx 负载均衡
  • 2023年中国地产SaaS分类、产业链及市场规模分析[图]
  • 在Go编程中调用外部命令的几种场景
  • 大学生如何免费认证,下载,安装MATLAB
  • 2023年中国稀土精密加工分类、市场规模及发展趋势分析[图]
  • 【SpringBoot3+Vue3】四【基础篇】-前端(vue基础)
  • 2023年中国全自动烘干机产业链、产能及发展趋势分析[图]
  • webpack 中,filename 和 chunkFilename 的区别
  • 全屋智能:鱼很大,但水更深
  • 【cpolar】搭建我的世界Java版服务器,公网远程联机
  • Python中,我们可以使用pandas和numpy库对Excel数据进行预处理,包括读取数据、数据清洗、异常值剔除等
  • Auto.js 清除指定应用缓存
  • RHCSA --- Linux存储管理
  • 定时器相关方法
  • AIGC创作系统ChatGPT源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图
  • (动手学习深度学习)第13章 计算机视觉---微调
  • Oracle for Windows安装和配置——Oracle for Windows net配置
  • EfficientPhys
  • 【笔记1-2】Qt系列:QkeyEvent 键盘事件 设定快捷键
  • Seaborn 回归(Regression)及矩阵(Matrix)绘图