Как запустить ionViewWillLeave в Ionic 4 с помощью маршрута в tabs.router.module - PullRequest
0 голосов
/ 26 марта 2019

Ловушки жизненного цикла ionViewWillLeave / ionViewDidLeave не срабатывают при размещении всех маршрутов страниц в TabsPageRoutingModule.

Мы изменили маршруты с app-routing.module.ts на tabs.router.module.ts, чтобы получить полное представление о панели вкладок вIonic 4 приложение.Маршруты работают отлично.
Когда маршруты были в app-routing.module.ts, ionViewWillLeave всегда срабатывал при выходе из страницы (и закрытии текущего Observables).Теперь ionViewWillLeave не запускается при выходе из страницы.

Маршрут в tabs.router.module.ts

const routes: Routes = [
  {
    path: 'tabs',
    component: TabsPage,
    children: [
      {
        path: '',
        redirectTo: '/tabs/(home:home)',
        pathMatch: 'full',
      },
      {
        path: 'home',
        outlet: 'home',
        component: HomePage
      },
      {
        path: 'chats',
        outlet: 'chats',
        component: ChatsPage
      },
...

Не удалось зарегистрировать для ionViewWillLeaveв файле TS

ionViewWillEnter() {
  console.log('ionViewWillEnter');  // <- In console when entering
}
ionViewWillLeave() {
  console.log('ionViewWillLeave');  // <- Not in console when leaving
}

Не могу понять, почему ionViewWillLeave больше не печатается.Любая помощь приветствуется.


Маршрут в app-routing.module.ts

const routes: Routes = [
  { path: '', loadChildren: './tabs/tabs.module#TabsPageModule' },
  { path: 'chats', loadChildren: './chats.module#ChatsPageModule' },
...

Регистрация успеха дляionViewWillLeave в файле TS

ionViewWillEnter() {
  console.log('ionViewWillEnter');  // <- In console when entering
}
ionViewWillLeave() {
  console.log('ionViewWillLeave');  // <- In console when leaving
}

1 Ответ

0 голосов
/ 27 марта 2019

Решение нашей проблемы

Снятие изменений с вкладок
4.0.0-бета.18 (2018-12-13)

Прекращено использование розетки / компонента в tab-router, теперь мы напрямую помещаем дочерние страницы в путь с вкладками.

{
  path: 'tabs',
  component: TabsPage,
  children: [
    {
      path: 'home',
      children: [
        {
          path: '',
          loadChildren: '../home/home.module#HomePageModule'
        },
        {
          path: 'chats'
          children: [
          {
            path: '',
            loadChildren: '../chats/chats.module#ChatsPageModule'
          }
        ]
      },
...
...