请教一下关于小程序跳转正确选用redirectTo与navigateTo的情况。

新手上路,请多包涵

开发环境:小程序
页面的跳转逻辑为:A(首页)->B(功能录入页)->C(确认页)->D(结果页),

**1.在完成功能后D页面点击完成按钮,返回A页面;
2.D页面点击左上角返回按钮,也返回A页面。
3.过程中若在C页面点击左上角返回,返回B页面。**

目前我写的逻辑是A-redirectTo->B-redirectTo->C-redirectTo->D

这样虽然可以实现1和2,但是3不行,

考虑过A-navigateTo->B-redirectTo->C-redirectTo->D

但是这样该怎样写D页面的返回和Unload方法呢?

新人刚刚开始开发小程序,麻烦大家多指教,谢谢!

阅读 2.5k
2 个回答

如果A页面是tab页面,d页面返回使用switchTab(A); 否则d页面返回使用reLaunch(A)

新手上路,请多包涵

A页面不是Tab页面,还有一个情况我没有说明,A页面之前还存在别的业务页面,因此不能使用relaunch(A)销毁其他所有页面。目前找到了一种方法勉强实现这种效果,A-navigateTo->B-redirectTo->C-redirectTo->D

在D页面添加标志位false,若没有通过左上角返回键返回,走back()方法:,将false置为true,并使用navigateBack(-2)返回。

同时页面的unload方法里判断标志位,若标志位为false(没有使用back),则使用navigate(-1);(本身点击了一次返回-1,unload里触发执行-1,-2正好回到A页面)

这样做的结果是如果通过左上角返回,页面会出现连续的两次后退动作,虽然目的达到了但还是有不足的地方。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题