我的路由顺序是 A-->B-->C-->D--(navigateTo)>C-->E--(navigateTo)>C 然后在C界面 我点击返回时候怎么 按照C-->B-->A的顺序返回 尝试过使用getCurrentPages() 用不好 感觉还是晕乎乎的
有思路,你可以尝试下可不可行
通过自定义返回逻辑实现
1.页面返回时拦截
2.利用uniapp的getCurrentPages方法,拿到路由栈,如[A,B,C,D,C,E,C] 或者通过监听路由变化利用uni.storage记录得到的路由栈
3.将其中的页面地址取出并反向记录下标。
得到
[
{
url:A,
index:6,
},
...
{
url:C,
index:2,
}
{
url:E,
index:1,
},
{
url:C,
index:0,
}
]
3.将数组去重并过滤掉你不想返回的页面地址。得到
[
{
url:A,
index:6,
},
{
url:B,
index:5,
},
{
url:C,
index:0,
}
]
4.取出对应需要返回的页面数并返回
取的是数组的倒数第二位的下标,也就是你需要返回绕过的页面数
比如C到B,delta为5
uni.navigateBack({
delta: 5 //需要返回的页面数
});
相关文档:
自定页面返回事件:https://ask.dcloud.net.cn/article/35120
页面栈:https://uniapp.dcloud.io/api/window/window?id=getcurrentpages