uniapp——navigator标签
navigate跳转引起的页面栈堆积问题
项目需要,使用redirect跳转会导致重定向,不利于用户体验。但是用navigate,当数目过多时,navigator不跳转。
<script>
var app = getApp()
export default {
data() {
return {
isClick:false
}
},
methods: {
navTap:function(item){
this.isClick = true;
// 长度可以设置length>9,我用的时候,大于2可以满足需求,大于10反而会出现太多页面堆积
var curPages = getCurrentPages().length;
if(curPages>2) {
uni.redirectTo({
url:'/pages/a'
})
}else{
uni.navigateto({
url:'/pages/a'
})
}
},
},
onShow:function(){
this.isClick = false;
},
// 监听页面卸载
onUnload:function(e){
if (!this.isClick) {
uni.navigateBack({
delta: 1,
})
}
},
<script>
<template>
<view @tap="navTap">跳转下一页面</view>
</template>
当页面栈层数到10时,navigate不能点击跳转,页面也没有报错,网上找了很多,综合根据我自己的理解整理出来,自己测试可以用的。
补充——
直接使用navigate
提交返回时,返回上一级页面并刷新某一函数实现数据更新
以下仅为示例:
let pages = getCurrentPages()
let prevPage = pages[ pages.length - 2 ];
// 触发上一页 upData 函数(并携带参数)
if (prevPage.route.indexOf('teach') == -1) { // 返回的路径是否包含teach,用于一个页面不同按钮点击时返回不同的页面
prevPage.$vm.upData("")
} else{
prevPage.$vm.upData()
}
// 获取上一页栈
uni.navigateBack({
delta: 1
})
原文地址:https://www.jb51.cc/wenti/3283678.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。