ionic-framework: bug: double tap a tab then go to a global page, back button missing and swipe back broken

Bug Report

Ionic version: [x] 4.11.5

Current behavior: using Angular router.navigate(), double-tap a tab then go to a global page, back button missing and swipe back broken

Expected behavior: back button still appears, and swipe back gesture still working

Steps to reproduce:

1.run it 2.tap twice the tab 3.click the global page button 4.check the back button

Related code:

A sample application via GitHub https://github.com/peterzhang41/ionicDoubleTapTabIssue

Other information: our team has to use NavController instead

Ionic info:

Ionic:

   Ionic CLI                     : 5.4.6 (/home/zehui/.nvm/versions/node/v10.17.0/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.11.5
   @angular-devkit/build-angular : 0.12.4
   @angular-devkit/schematics    : 7.2.4
   @angular/cli                  : 7.2.4
   @ionic/angular-toolkit        : 1.4.1

Cordova:

   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : android 8.1.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.3, (and 4 other plugins)

Utility:

   cordova-res : not installed
   native-run  : 0.2.9 

System:

   Android SDK Tools : 26.1.1 (/home/zehui/Library/Android/Sdk)
   NodeJS            : v10.17.0 (/home/zehui/.nvm/versions/node/v10.17.0/bin/node)
   npm               : 6.13.0
   OS                : Linux 4.15

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 1
  • Comments: 16 (4 by maintainers)

Most upvoted comments

This fix will not be ported to Ionic 4. Ionic 4 is only receiving critical security fixes moving forward.

I guess this has something to do with the routing - together with componentless routes and redirects and/or the way navigation happens when tapping an already open tab with its root component being displayed. Lazy loaded routes and componentless modules seem to play a role here (with components being destroyed even though they shouldn’t - breaking navigation) - I am able to work around this by moving some child routes into the tab routing module. I’m currently investigating and trying to nail this down a bit more.