Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Taro H5端二级页面switchTab到tabBar页功能异常 #8622

Closed
NeroWzl opened this issue Feb 1, 2021 · 1 comment
Closed

Taro H5端二级页面switchTab到tabBar页功能异常 #8622

NeroWzl opened this issue Feb 1, 2021 · 1 comment
Labels
F-react Framework - React T-h5 Target - 编译到 H5 V-2 Version - 2.x

Comments

@NeroWzl
Copy link

NeroWzl commented Feb 1, 2021

相关平台

H5

复现仓库

https://github.com/NeroWzl/taro-demo.git
浏览器版本: Chrome 84
使用框架: React

复现步骤

1、npm run dev:h5
2、进入二级页面
3、点击头部components中的返回tabBar按钮,返回tabBar页

期望结果

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

实际结果

1、某种情况下跳转失败
2、其他非tabBar页面没有关闭

环境信息

Taro CLI 2.2.16 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 14.15.1 - C:\Program Files\nodejs\node.EXE
      Yarn: 1.22.10 - ~\AppData\Roaming\npm\yarn.CMD
      npm: 6.14.8 - C:\Program Files\nodejs\npm.CMD


补充信息

1、在二级页面使用View元素为根节点时使用switchTab可以正常回到tabBar页面,但在Dom中只是把二级页面的根节点替换成tabBar页面的,在Dom树上已有该tabBar页面的情况下,并没有删除掉该二级页面Dom节点然后显示出原本存在的tabBar页面,实现真正意义的关闭,因此在不做限制的情况下如此循环操作,Dom节点只会越来越多;

2、而在二级页面是由一个Block元素为根节点时,调用switchTab会报错,此时路由已经发生变化变更为tabBar页面,下方的tabBat栏会显现,但页面元素替换失败,依然显示的是二级页面的内容,再次点击返回按钮调用switchTab后,才能回到想要跳转到的tabBar页面(具体操作于demo中可以体验);

3、这里还有一个问题,在现有的项目中遇到(该项目是微信小程序转化过来的,并且从之前的2.2.13升级到2.2.16版本),我无法在demo中重现,具体情况如下描述:
操作流程同样是从tabBar页出发,进入二级页面,然后点击头部components中的返回首页按钮(首页是tabBar页面)。
正常情况下应该和上面两点描述的行为一致,但实际情况是:二级页面是由Block为根节点,但是没有报错,只是在该页面根元素的最后添加该tabBar页面的Dom节点(相当于appendChild),原有的二级页面节点也没有被替换,受z-index大小的影响有的页面可以显示而有的页面被掩盖,再次点击首页按钮,回到tabBar首页;把二级页面的根节点改成View元素之后表现正常;以上情况二级页面Dom均存在没有被关闭。

@taro-bot2 taro-bot2 bot added F-react Framework - React T-h5 Target - 编译到 H5 V-2 Version - 2.x labels Feb 1, 2021
@kchijim
Copy link

kchijim commented Dec 24, 2021

我有个与这种情况类似的bug,也是在h5平台。

taro版本是3.3.12

复现步骤:

  1. a页面点击按钮执行switchTo进入tab b页面。
  2. b页面有个类似按钮的图片,点击后navigateTo进入c页面。
  3. 此时在c页面物理回退。

期望效果:正常显示tab b页面

实际效果:显示了a页面,浏览器上的路径还是显示tab b页面的路径,同时tabBar也出现在下方。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
F-react Framework - React T-h5 Target - 编译到 H5 V-2 Version - 2.x
Projects
Archived in project
Development

No branches or pull requests

3 participants