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

Aperta
#60 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
angular, typescript

Direzione di ricerca

Inizia riproducendo il flusso segnalato con NativeScript 8.1.2, il TabView nativo/core, page-router-outlet, cinque tab e route annidate su Android. Confronta i valori 1 e 3 di androidOffscreenTabLimit, quindi verifica che il ritorno da Tab 2 alla route annidata di Tab 5 non causi né un blocco né un ritorno imprevisto al main outlet.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
Lingua principale
TypeScript
Stelle
55
Fork
13
Merge medio
16m
PR unite (30g)
1

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di NativeScript/angular

Tutte le issue di NativeScript/angular

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.