收藏
回答

难道通过点击切换tab和通过wx.switchTab切换tab是不一致的吗?

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.switchTab 工具 6.6.5 1.9.97

文档中说 wx.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。我现在有两个tabbar页面(home,center)。我在center的onShow中打印console.log(getCurrentPages())。当我从home点击跳到center的时候打印出来的页面栈只有center,没有home,这是为何?难道通过点击切换tab和通过wx.switchTab切换tab是不一致的吗?

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

2 个回答

  • 小程序技术专员-june
    小程序技术专员-june
    2018-05-21

    一样的,你那边是遇到两种方式切换tab时console出来的结果不一致?

    2018-05-21
    赞同 1
    回复 11
    • 小被子
      小被子
      2018-05-22
      我测试的两种方式切换tab,console出来的结果是一致的,但是结果和文档中说的【wx.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面】 不一致,因为切到center页面的时候,把home页【tabbar页面】从页面栈中移除了
      2018-05-22
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-05-22回复小被子
      页面栈,理论上是打开新页面才会叠上去。你这是切换到另一个tab页面,不会进入页面栈的。不然来回切tab都进入页面栈,页面栈会爆掉的。
      2018-05-22
      回复
    • 小被子
      小被子
      2018-05-22
      首先,切换到另一个tab(如提问中的从home切换到center), center是进入了页面栈的,我现在的疑问是为什么home没有在页面栈中(之所以疑问是因为文档中说“ wx.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 ”),小程序规定的tabbar最多是5个,所以来回切换tab应该只是一个替换栈顶元素的操作,不会出现你说的 “ 页面栈会爆掉的 ” 的问题。所以你还是没有回答我的问题啊
      2018-05-22
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-05-22回复小被子
      不是很清楚你这边的问题,是想说 “wx.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面” 这句描述里tabBar页面不在页面栈所以它应该是被关闭了么? 实际上这里并没有关闭tabBar页面,只是它不在页面栈里。
      2018-05-22
      回复
    • 小被子
      小被子
      2018-05-23回复小程序技术专员-june
      我这么问吧! 文档中说: wx.switchTab跳转到 tabBar 页面,会关闭其他所有非 tabBar 页面,那它会关闭tabbar页面吗?
      2018-05-23
      回复
    查看更多(6)
  • 小被子
    小被子
    2018-05-21

    我的理解是如果页面栈中已经没有了页面A,那么再次进入到页面A的时候还是会调用onLoad,这样理解对吗?

    2018-05-21
    赞同
    回复