当前位置: 首页 > 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/a/134601.html

相关文章:

  • 前端-同源与跨域
  • 软件工程概论项目(二),node.js的配置,npm的使用与vue的安装
  • MySql结合element-plus pagination的分页查询
  • 【C++】C++11特性(上)
  • 应用程序部署(IIS的相关使用,sql server的相关使用)
  • k8s集群安装(kubeadm)
  • 面试题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版服务器,公网远程联机