Ionic: NavParams в дочерней вкладке теряется после обновления страницы - PullRequest
0 голосов
/ 10 ноября 2018

Рассмотрим родительский TabsPage с декоратором IonicPage () следующим образом:

@IonicPage({
    segment: 'case/:caseId/summary/:summaryId'
})

Передайте navParams TabsPage как rootParams на все дочерние страницы вкладок.

Перейдите на дочернюю вкладку и зарегистрируйте экземпляр navParams в конструкторе. Также зарегистрируйте экземпляр navParams в родительском конструкторе TabsPage.

export class TabsPage {
  constructor(private _navParams: NavParams){
    console.log(this._navParams);
  }
}

export class AboutPage {
  constructor(private _navParams: NavParams){
    console.log(this._navParams);
  }
}

В обычном потоке, когда вы переходите с другой страницы на одну из дочерних страниц навигации по вкладкам, передавая {caseId: 123, summaryId: 234} как navParams, вы увидите, что одни и те же navParams регистрируются как в родительском, так и в дочернем конструкторе.

export class LandingPage{
   goToTabsPage() {
     this.navCtrl.push("TabsPage", {caseId: 123, summaryId: 2345});
   }
}

Однако, если вы находитесь на дочерней вкладке и нажали перезагрузить браузер, вы увидите navParams {caseId: 123, summaryId: 234} в родительском конструкторе TabsPage, но не на дочерней вкладке.

export class TabsPage {
      constructor(private _navParams: NavParams){
        console.log(this._navParams);
      }
    }

// Это печатает {caseId: 123, summaryId: 234}

export class AboutPage {
  constructor(private _navParams: NavParams){
    console.log(this._navParams);
  }
}

// Это печатает {}

Это ионная ошибка или я что-то упустил?

...