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

news/2024/7/20 0:57:48 标签: 小程序, 前端

新建 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.niftyadmin.cn/n/5189568.html

相关文章

简单解决网页的验证码

翻到一个网站,展开需要验证码,而验证码需要关注微信公众号,懒得弄,所以有了这篇文章 首先,先看一下F12中的网络(Network),发现并没有使用网络动态验证 那么这个验证码必定是写在资源文件中的 在确定按钮上看到如下元素监听(Event Listeners) 进入打断点 成功断下 单步跟到…

uniapp大概是怎么个开发法(前端)

写在前面&#xff0c;博主是个在北京打拼的码农&#xff0c;从事前端工作5年了&#xff0c;做过十多个大大小小不同类型的项目&#xff0c;最近心血来潮在这儿写点东西&#xff0c;欢迎大家多多指教。 对于文章中出现的任何错误请大家批评指出&#xff0c;一定及时修改。有任何…

软件开发和测试

一&#xff0c;敏捷软件开发 二&#xff0c;软件测试

腾讯云服务器秒杀什么时候开始?腾讯云服务器秒杀时间

腾讯云服务器秒杀什么时候开始呢&#xff1f;我们一起来揭晓答案&#xff01; 腾讯云服务器秒杀活动即日起至2023-11-30 23:59:59&#xff0c;每日0点限量秒杀。这意味着&#xff0c;每一天的开始&#xff0c;你都有机会抢到心仪的服务器。秒杀活动入口&#xff1a;https://te…

stream流方法介绍

获取流的方法llistCollection.streammapmap.keySet().stream()数组Stream.of(array)中间方法filter可以用于条件过滤map如果需要将流中的元素映射到另一个流中&#xff0c;可以使用 map 方法limit取用前几个&#xff08;截取&#xff09;skip跳过前几个元素concat组合&#xff…

RF 检测器/控制器MS2351M

产品简述 MS2351M 是一款对数放大器芯片&#xff0c;主要用于接收信号强度 指示 RSSI 与功率放大器控制&#xff0c;工作频率范围是 50M  3000MHz &#xff0c; 因频率与温度不同&#xff0c;动态范围达 35dB 到 45dB 。 MS2351M 是电压响应器件&#xff0c; 50M…

springboot整合kettle和xxljob

kettle 9.2.0.0-290 入门可以了解一下 本文只弄了ktr文件的执行&#xff0c;其他文件类似 先说一下分工springboot不用说 kettle主要是先配置出来ktr&#xff0c;配置完之后建议 先执行通过&#xff0c;确保ktr能正常使用 然后通过执行ktr把数据读取&#xff0c;处理&…

MATLAB程序设计:改进欧拉公式

clear;clc;close all; syms x y fexp(x^2); x00; y00; % (x0 y0)为初值 h0.5; N4; xix0:h:x0h*N; yizeros(1,N); yi(1)y0; for k1:N yi(k1)yi(k)h*subs(f,{x y}, {xi(k),yi(k)}); yi(k1)yi(k)h/2*( subs(f,{x y}, {xi(k),yi(k)})subs(f,{x y}, {xi(k1),yi(k1)} )); end v…