Outlets freeze when navigate to a nested route from another tab, only on Android

Ouverte
#60 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
angular, typescript
Domaine
frontend, mobile-dev

Piste de recherche

Commencez par reproduire le flux signalé avec NativeScript 8.1.2, le TabView natif/core, page-router-outlet, cinq onglets et des routes imbriquées sur Android. Comparez les valeurs 1 et 3 de androidOffscreenTabLimit, puis vérifiez que le retour de Tab 2 vers la route imbriquée de Tab 5 ne provoque ni blocage ni retour inattendu vers le main outlet.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug-pending-triage
Issue Description

Outlets freeze when we navigate to a nested route from another TabView only on Android. We have 5 tabs and 2 of them has nested routes. We use page-router-outlet and native/core TabView component.

Steps to reproduce:
Go to Tab 5 -> drill down 3 levels to the nested route -> click the button to navigate to Tab 2, which takes you to Tab 2 w/o any issues-> Go back to Tab 5, you are on the last screen (nested route) but it freezes. You can't go back or can't do anything on the screen. However on iOS, instead of freezing, it goes all the way back to the main outlet.
So apparently the iOS behavior is the intentional behavior of tabView, because tabView keeps only 1 view alive and it's the main outlets in our case?

Our tabView has the androidTabsPosition="bottom" option and we realized that this sets androidOffscreenTabLimit to 1 automatically, so it means only the current tab is alive. I tried adding the androidOffscreenTabLimit="3" option to the tabView (because we have max 3 level nested navigation on Tab 5) , the tabs are not frozen anymore, BUT now the interface jumps back to the main outlet (just like iOS). Any idea how to solve this ?

Also a side note, this started happening after NativeScript 8 upgrade. We were using bottomnavigationbar with NS7 but we had to change to tabView with NS8. We didn't have any freezing or jumping back to the main outlet issues before the update.

Any insight will be appreciated, thanks so much!

Reproduction

No response

Relevant log output (if applicable)

No response

Environment
node: 14.15.0
npm: 7.6.1
nativescript: 8.1.2

### Dependencies

```json
"dependencies": {
  "@angular/animations": "~13.1.1",
  "@angular/common": "~13.1.1",
  "@angular/compiler": "~13.1.1",
  "@angular/core": "~13.1.1",
  "@angular/forms": "~13.1.1",
  "@angular/platform-browser": "~13.1.1",
  "@angular/platform-browser-dynamic": "~13.1.1",
  "@angular/router": "~13.1.1",
  "@nativescript-community/ui-material-bottomnavigationbar": "^6.2.5",
  "@nativescript/angular": "^13.0.0",
  "@nativescript/core": "~8.1.1",
  "@nativescript/email": "^2.0.5",
  "@nativescript/geolocation": "^8.0.2",
  "@nativescript/theme": "~3.0.1",
  "@nstudio/nativescript-cardview": "^2.0.1",
  "@nstudio/nativescript-floatingactionbutton": "^3.0.4",
  "moment": "^2.29.1",
  "nativescript-mapbox-sdk": "file:../well-finder-smartphone-app-.nativescript-mapbox-sdk/src",
  "nativescript-ripple": "^4.0.1",
  "nativescript-ui-sidedrawer": "^10.0.2",
  "nativescript-windowed-modal": "^7.0.0",
  "rxjs": "~7.4.0",
  "zone.js": "~0.11.4"
},
"devDependencies": {
  "@angular-devkit/build-angular": "~13.1.1",
  "@angular/compiler-cli": "~13.1.1",
  "@nativescript/android": "8.1.1",
  "@nativescript/debug-ios": "^1.0.0",
  "@nativescript/ios": "8.1.0",
  "@nativescript/types": "~8.1.1",
  "@nativescript/webpack": "~5.0.0",
  "@ngtools/webpack": "~13.1.1",
  "@types/geojson": "^7946.0.8",
  "node-sass": "^7.0.1",
  "typescript": "~4.4.4"
}
Please accept these terms
Langage dominant
TypeScript
Étoiles
55
Forks
13
Merge moyen
16 min
PR mergées (30 j)
1

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de NativeScript/angular

Toutes les issues de NativeScript/angular

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.