uni-app uni.navigateTo 在h5环境下有bug

uni-app uni.navigateTo 在h5环境下有bug

示例代码:

setTimeout(() => {
uni.navigateTo()
})

操作步骤:

在h5环境下创建一个页面,然后执行下方代码会报错,设置个按钮,绑定点击时间,触发下方的代码

setTimeout(() => {
uni.navigateTo()
})

但是加了delta=1就是正常的

预期结果:

能正常返回页面,不加delta=1也可以返回页面

实际结果:

现在不加delta=1不能返回

bug描述:

在h5环境下创建一个页面,然后执行下方代码会报错,但是加了delta=1就是正常的

setTimeout(() => {
uni.navigateTo()
})


更多关于uni-app uni.navigateTo 在h5环境下有bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

你截图的那个代码是你的业务代码还是uniapp的框架源码?

更多关于uni-app uni.navigateTo 在h5环境下有bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html


框架源码

真正的业务代码只有 setTimeout(()=>{ uni.navigateTo() })

回复 3***@qq.com: vue2还是vue3?

回复 DCloud_UNI_JBB: vue2

回复 3***@qq.com: 发个demo

在H5环境下,uni.navigateTo() 必须传入有效的参数对象,否则会触发错误。根据你的代码和截图,问题在于调用时未提供必要的配置参数。

原因分析: uni.navigateTo() 方法在H5平台需要明确指定跳转目标。当参数为空或格式不正确时,框架无法处理跳转逻辑。你提到的添加 delta: 1 能正常工作,是因为它符合 uni.navigateBack() 的参数字段,但这里实际应该使用 uni.navigateBack({ delta: 1 }) 进行返回,而非 uni.navigateTo()

正确用法:

  1. 若需跳转新页面,应使用:
    uni.navigateTo({
      url: '/pages/targetPage/targetPage'
    });
    
  2. 若需返回上一页,应使用:
    uni.navigateBack({
      delta: 1
    });
回到顶部