webxue2024
webxue2024
  • 发布:2020-04-13 11:43
  • 更新:2020-12-24 11:01
  • 阅读:1773

uni-app快速频繁点击tabBar按钮会提示"已存在待跳转页面"怎么解决

分类:uni-app

频繁点击 tabBar 按钮会提示图中信息
类似于函数防抖
怎样控制点击tabBar按钮之后不能再次点击(可能是该页面并未渲染完成,所以可以一直点击)

2020-04-13 11:43 负责人:无 分享
已邀请:
喜欢技术的前端

喜欢技术的前端 - QQ---445849201

官方说:这个问题需要自己处理,比如在 uni.navigateTo 的时候弄个变量判断一下,一定时间内不允许重复调用

  • webxue2024 (作者)

    哈哈哈,那这应该属于一个bug吧

    2020-04-13 11:54

  • 喜欢技术的前端

    回复 xueshuai_12@163.com: 是的啊,前几天给官方提了,意思就是点击之前设置一个定时器,在页面跳转之前,不能重复点击

    2020-04-13 11:59

  • webxue2024 (作者)

    回复 喜欢技术的前端: 但是点击的时候直接进入onTabItemTap里了,在这里面设置定时器执行uni.switchTab吗

    2020-04-13 12:01

  • 喜欢技术的前端

    回复 webxue2024: 不是,加我微信18729226704 给你说

    2020-04-13 12:14

Enochjdy

Enochjdy

自己封装的一个防抖跳转,核心就是自调函数,需要注意的是如果是多个跳转业务同时执行,页面的加载顺序会依照代码执行顺序。目前还是挺好用的,搭配的vuex

Vue.prototype.myRouter = function(obj) {   //防抖跳转-多用于非用户操作跳转  
    if(store.state.routerBool){  
        store.state.routerBool = false  
        if(obj.type == "reLaunch"){  
            uni.reLaunch({  
                url:obj.url,  
                success() {  
                    store.state.routerBool = true  
                }  
            })  
        }  
        if(obj.type == "navigateTo"){  
            uni.navigateTo({  
                url:obj.url,  
                success() {  
                    store.state.routerBool = true  
                }  
            })  
        }  

    }else{  
        setTimeout(() => {   //检测是否可以跳转的速度  
            this.myRouter(obj)  
        },200)  
    }  
}

该问题目前已经被锁定, 无法添加新回复