uniapp中重写头部菜单栏来解决页面跳转死循环问题

情景:上面四张图片分别命名为A(设置页面),B(添加配送范围),C(配送管理),D(修改配送范围);

从A页面点击配送管理进入C页面,使用的跳转方式是 uni.redirectTo({ url: 'C?id=1' });

点击C页面中的 添加配送范围进入D页面,使用的跳转方式是 uni.redirectTo({ url: 'D?id=1' });

点击C页面中的 修改图标进入B页面,使用的跳转方式是 uni.redirectTo({ url: 'B?id=1' });

如果多次在B、C、D页面之间进行跳转,再次点击C页面的返回按钮的时候,页面并不能跳转到A页面;

页面菜单栏中的返回按钮是:只要使用了uni.redirectTo({ url: 'B?id=1' });跳转到某个页面,某个页面的头部就会有返回按钮的图标;

为了防止死循环的bug;现在我重写各个页面的头部菜单栏;

以B页面为例:

在pages.json文件中首先对B页面进行配置:

{
	"id": "addSendRange",   // 添加配送范围页面的id
	"path": "pages/setting/addSendRange",  // 添加配送范围的页面路径
	"style": {
		"navigationBarTextStyle": "white",  // 菜单栏文字颜色
		"navigationBarTitleText":"添加配送范围", // 菜单栏文字
		"navigationBarBackgroundColor":"#2f71fb",  // 菜单栏背景色
		"app-plus": {
			"titleNView": {
				"buttons": [ //原生标题栏按钮配置,
					{
						"float":"left", // 按钮浮动方式,float:向左浮动;right:向右浮动
						"fontSize":"24px", // 文字大小
						 "type":"back"   // 图标类型
					} 
					]
					}
				}
			}
		}

在B页面中:使用     onNavigationBarButtonTap(e){ console.log(e.index)}  函数(该函数和methods平级)中的 e.index 进行判断是点击了哪一个按钮;e.index的序号是pages.json中该页面配置的buttons中的对象的序号,通过序号,可判断点击了哪一个头部菜单按钮,并进行跳转或者其他操作;

跳转方式的话官网有:https://uniapp.dcloud.io/api/router?id=navigateto

一些buttons的其他配置可以在官网查看:https://uniapp.dcloud.io/collocation/pages?id=app-titlenview-buttons

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值