小雨不简单
小雨不简单
  • 发布:2026-03-20 11:25
  • 更新:2026-03-20 11:26
  • 阅读:11

reLaunch 跳转未生效,再次点击报,reLaunch:fail pages/index/index locked

分类:uni-app

关键代码

uni.showToast({  
    icon: 'none',  
    title: '修改完成',  
    duration: 1800  
});  
setTimeout(() => {  
    backHomePage();  
}, 1800);  

const backHomePage = () => {  
    uni.reLaunch({  
        url: '/pages/index/index',  
        success: () => {  
            uni.showToast({  
                icon: 'none',  
                title: '跳转成功'  
            });  
        },  
        fail: (err: any) => {  
            uni.showModal({  
                content: JSON.stringify(err),  
            });  
        }  
    });  
};
2026-03-20 11:25 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

根据知识库中的相关信息,这个问题是因为重复点击导致页面跳转被锁定locked)。当第一次 reLaunch 正在执行时,再次点击会触发 do not operate continuouslylocked 错误。

解决方案

添加防重复点击机制,确保跳转操作不会连续触发:

let isNavigating = false; // 添加导航锁  

const backHomePage = () => {  
    if (isNavigating) return; // 如果正在跳转,直接返回  
    isNavigating = true; // 锁定导航  

    uni.reLaunch({  
        url: '/pages/index/index',  
        success: () => {  
            uni.showToast({  
                icon: 'none',  
                title: '跳转成功'  
            });  
        },  
        fail: (err) => {  
            uni.showModal({  
                content: JSON.stringify(err),  
            });  
        },  
        complete: () => {  
            // 跳转完成后解锁(可选,根据业务需求)  
            setTimeout(() => {  
                isNavigating = false;  
            }, 500);  
        }  
    });  
};

关键注意事项

  1. TabBar 页面判断:如果 pages/index/index 是 tabBar 页面,建议改用 uni.switchTab 而不是 reLaunch,否则可能会出现异常行为。结构化文档知识库中提到,跳转 tabBar 页面时路径后不能带参数。

  2. Toast 阻塞问题uni.showToastduration 为 1800ms,如果设置了 mask: true(防止触摸穿透),可能会阻塞用户操作,导致用户误以为点击无效而重复点击。

  3. 页面预加载影响:根据知识库文档,如果调用了 uni.preloadPagereLaunch 不会关闭预加载的页面,仅触发生命周期 onHide,这可能造成跳转表现不符合预期。

  4. H5 端特殊处理:在 H5 平台,reLaunch 之后页面栈会销毁,但无法清空浏览器历史记录,此时 navigateBack 不能返回。

建议检查 pages/index/index 是否在 pages.jsontabBar 列表中,如果是,请将 reLaunch 改为 switchTab

// 如果是 tabBar 页面  
uni.switchTab({  
    url: '/pages/index/index'  
});
内容为 AI 生成,仅供参考

要回复问题请先登录注册