问题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大于页面栈内页面数量时,应当回到首页,而实际情况是,小程序被关闭了,连首页也被销毁了。
希望解答疑问。
问题1:navigateBack和navigateTo同时调用,因为都是异步的,会有时序的问题,不建议这样使用。
问题2:已复现,我们会在后续版本修复。
未来可否提供同步的方法?
页面栈:A - B - C - D,在D执行完某操作后,跳转到新页面E,并销毁B C D。
类似的需求会有很多,比如商品列表页A,商品详情页B,购物车页C,选择支付方式页D,支付完成后需要跳转到订单详情页E,现有的页面跳转API没法用,只能用非常繁杂的方式去调用。
你好,请提供出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
wechatide://minicode/MUWXH4mf7k2n
已经生成Demo,不知道可否检查一下
小程序库 2.2.4
微信版本 6.7.2
如果首页 是tabBar的 其他不是tabBar的话,那就是B执行完成,跳转C的时候关闭所有非tabBar页面,这样C返回 的话就返回首页了
跳转C的时候关闭所有非tabBar页面,请问如何实现?
目前我使用的是,在B执行完成,navigateBack(delta 6)来返回首页
但是在执行完navigateBack(delta 6)后,navigateTo(url C页面)却没有执行
好像我说的这个只能首页和C为tabBar才能实现。 你能把你这些页面 哪些是tabBar 那些不是说下嘛?
嗯嗯,首页是tabbar的,其他页面都不是tabbar页面
这样你看可以不?B->C 销毁B 从C可以返回到A。C跳转首页,在销毁A和C