2***@qq.com
2***@qq.com
  • 发布:2021-12-14 11:58
  • 更新:2021-12-16 09:39
  • 阅读:1434

【报Bug】uni.navigateTo后退触发了onLoad

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10.0.19044

HBuilderX类型: 正式

HBuilderX版本号: 3.2.12

浏览器平台: Chrome

浏览器版本: 用的hbuildX的内置浏览器

项目创建方式: HBuilderX

操作步骤:

uni.navigateTo({url:'/pages/'});
history.pushState(null,null,document.URL)
history.pushState(null,null,document.URL)
然后点内置浏览器的后退按钮,可以在页面的onLoad里打印一下

预期结果:

后退不触发onLoad

实际结果:

后退触发了onLoad

bug描述:

通过uni.navigateTo跳转页面以后,执行两次或以上history.pushState(null,null,document.URL),在控制台执行就行,这时候后退页面触发了onLoad,这是怎么回事呢?后退不都是不会触发onLoad的吗?

2021-12-14 11:58 负责人:DCloud_UNI_LXH 分享
已邀请:
DCloud_UNI_HT

DCloud_UNI_HT

很显然 navigateTo 不是跳转页面 ,是打开新页面 ,哪怕你已经打开了这个页面!

后退应该使用 uni.navigateBack()

  • 2***@qq.com (作者)

    是用的uni.navigateBack()后退,我从a页面uni.navigateBack()到b页面,直接退回去没有走到onLoad里,到b页面后执行两次或以上history.pushState(null,null,document.URL)后退就会出发onLoad,问题不在于uni.navigateBack()和uni.navigateTo的使用,而是history.pushState(null,null,document.URL)之后不知道对uni的route产生了什么影响,导致用uni.navigateBack()后退走到了onLoad里去

    2021-12-16 15:46

  • DCloud_UNI_HT

    回复 2***@qq.com: 建议提供一个测试工程 ,然后详细描述一下测试流程,我来复现一下这个问题 ,看看是不是bug

    2021-12-20 10:22

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