情景:上面四张图片分别命名为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