收藏
回答

关于wx.navigateBack导致的Bug求助

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.navigateBack 客户端 6.7.2 2.2.4

问题1:

当前的产品需求是:

首页 -> A页面 -> B页面,B页面执行完操作后,需要跳转到C页面,同时销毁A页面和B页面。

其中首页 -> A页面 -> B页面使用的都是wx.navigateTo,因为需要为用户提供返回的路径。

目前我的问题是,在B页面执行完操作后,使用了wx.navigateBack,delta值为6。

正常返回到了首页,但是立刻执行wx.navigateTo C页面,却不能执行。


B页面部分代码格式如下:

wx.navigateBack({

    delta:6

})

wx.navigateTo({

    url:'C页面'

})

最终只是返回了首页,却没有跳转到C页面。



问题2:

还有另外一种情况,首页 -> D页面,在D页面onUnload生命周期中调用了如下代码:

wx.navigateBack({

    delta:6

})

按照文档所述,当delta大于页面栈内页面数量时,应当回到首页,而实际情况是,小程序被关闭了,连首页也被销毁了。


希望解答疑问。


最后一次编辑于  2018-08-30
回答关注问题邀请回答
收藏

3 个回答

  • cunjinli
    cunjinli
    2018-08-31

    问题1:navigateBack和navigateTo同时调用,因为都是异步的,会有时序的问题,不建议这样使用。

    问题2:已复现,我们会在后续版本修复。

    2018-08-31
    赞同
    回复 1
    • X
      X
      2018-09-01

      未来可否提供同步的方法?

      页面栈:A - B - C - D,在D执行完某操作后,跳转到新页面E,并销毁B C D

      类似的需求会有很多,比如商品列表页A,商品详情页B,购物车页C,选择支付方式页D,支付完成后需要跳转到订单详情页E,现有的页面跳转API没法用,只能用非常繁杂的方式去调用。

      2018-09-01
      回复
  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    2018-08-31

    你好,请提供出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2018-08-31
    赞同
    回复 3
    • X
      X
      2018-08-31

      wechatide://minicode/MUWXH4mf7k2n

      2018-08-31
      回复
    • X
      X
      2018-08-31

      已经生成Demo,不知道可否检查一下

      2018-08-31
      回复
    • X
      X
      2018-08-31

      小程序库 2.2.4

      微信版本 6.7.2

      2018-08-31
      回复
  • จุ๊บ
    จุ๊บ
    2018-08-31

    如果首页 是tabBar的  其他不是tabBar的话,那就是B执行完成,跳转C的时候关闭所有非tabBar页面,这样C返回 的话就返回首页了

    2018-08-31
    赞同
    回复 10
    • X
      X
      2018-08-31

      跳转C的时候关闭所有非tabBar页面,请问如何实现?

      目前我使用的是,在B执行完成,navigateBack(delta 6)来返回首页

      2018-08-31
      回复
    • X
      X
      2018-08-31回复X

      但是在执行完navigateBack(delta 6)后,navigateTo(url C页面)却没有执行

      2018-08-31
      回复
    • จุ๊บ
      จุ๊บ
      2018-08-31回复X

      好像我说的这个只能首页和C为tabBar才能实现。  你能把你这些页面  哪些是tabBar 那些不是说下嘛?

      2018-08-31
      回复
    • X
      X
      2018-08-31回复จุ๊บ

      嗯嗯,首页是tabbar的,其他页面都不是tabbar页面

      2018-08-31
      回复
    • จุ๊บ
      จุ๊บ
      2018-08-31回复X

      这样你看可以不?B->C 销毁B 从C可以返回到A。C跳转首页,在销毁A和C

      2018-08-31
      回复
    查看更多(5)