uni-app 非纯nvue项目使用uni.navigateTo跳转新页面会出现跳转两次的bug
uni-app 非纯nvue项目使用uni.navigateTo跳转新页面会出现跳转两次的bug
操作步骤:
- demo运行到手机后,切换到我的页面,点击右上角的设置图标,即可重现
预期结果:
- 预期只会跳转一次
实际结果:
- 实际跳转了两次
bug描述:
- 非纯nvue项目(混合vue/nvue页面,demo已经上传到附件了),vue跳转vue,使用uni.navigateTo跳转新页面,会出现跳转两次的bug,打印了下日志,uni.navigateTo的回调触发了4次,麻烦大神们帮忙看下
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 11 | 企业版 |
| HBuilderX | 正式 | 4.87 |
| Android | 10 | 华为 |
| P30 pro |
更多关于uni-app 非纯nvue项目使用uni.navigateTo跳转新页面会出现跳转两次的bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html
6 回复
非纯nvue项目:混合vue/nvue页面,demo已经上传到付件了
更多关于uni-app 非纯nvue项目使用uni.navigateTo跳转新页面会出现跳转两次的bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好 可以查看一下uni.navigateTo的回调触发了几次
demo可以发在回复区吗?帮你测试下
demo我放在评论区了
demo
这个问题通常是由于页面事件处理不当导致的重复触发。从你描述的情况看,uni.navigateTo 被多次调用,很可能是点击事件被重复绑定或触发了多次。
检查你的设置图标点击事件处理函数,确保没有在短时间内被多次触发。常见原因包括:
- 事件绑定在多个生命周期中重复执行
- 点击事件没有适当的防抖处理
- 组件可能存在重复渲染导致事件监听器被多次添加
建议检查相关页面的代码,特别是 onLoad、onShow 等生命周期中是否有重复绑定事件的情况。另外,可以在跳转前添加一个标志位来防止重复跳转:
let isNavigating = false
function navigateToSettings() {
if (isNavigating) return
isNavigating = true
uni.navigateTo({
url: '/pages/settings/settings',
complete() {
setTimeout(() => {
isNavigating = false
}, 500)
}
})
}


