收藏
回答

wx.switchTab是页面栈一层层返回才跳转清空的吗?

wx.switchTab,首页,点击tabbar跳到个人中心,个人中心判断是否登录,没登录自动跳到登录页面,如果不登录直接返回,我是用的wx.switchTab来直接跳到首页,但我发现它是清空页面栈的登录页,跳到个人中心,再清空页面栈的个人中心页,跳到首页,但我个人中心页的onshow会判断是否登录,没登录自动跳到登录页面,就会出现跳到首页后,又马上跳到登录页,这个要怎解决?而且第二次尝试就不会出现这个情况,但第三次又有,第四次无的情况

回答关注问题邀请回答
收藏

1 个回答

  • PENG
    PENG
    2023-03-30

    写个全局变量或者状态管理变量,标志是否到过登录页,从而在个人中心onShow中判断是否需要跳转登录页

    2023-03-30
    有用 1
    回复 4
    • Davidsキ
      Davidsキ
      2023-03-30
      我加了之后,试了几种情况感觉没啥问题,就怕后面还有其他情况
      2023-03-30
      回复
    • PENG
      PENG
      2023-03-30回复Davidsキ
      我理解你的需求是想第一次进入个人中心,判断如果不登录,强制跳转登录页,后面进入个人中心都不会跳转。但switchTab是打开tabbar页面,关闭所有非tabbar页面,也就是非tabbar页面强制出栈,在历史栈中找不到,所以没法判断是否到过登录页。只能用一个变量标识。
      2023-03-30
      回复
    • Davidsキ
      Davidsキ
      发表于移动端
      2023-03-30回复PENG
      还有一种情况就是,手机自带的滑动返回,这个无法监听阻止,即使在页面卸载的时候用swithtab跳到首页,但其实还是会经过个人中心,还是会判断是否登录,这样子跳到首页后,又会马上跳到登录页,加上顶部的返回栏是自定义的,这就变得比较复杂,所以我觉得你这个加字段判断是比较好用的,就怕还有其他情况
      2023-03-30
      回复
    • Davidsキ
      Davidsキ
      发表于移动端
      2023-03-30回复PENG
      而且根据打印结果,似乎这个滑动返回的优先级是高于页面卸载的,这就很神奇
      2023-03-30
      回复
登录 后发表内容