Как будет работать с вкладками

#angular #ionic-framework #ionic4

#angular #ionic-framework #ionic4

Вопрос:

Здравствуйте, я хочу поместить кнопку возврата по умолчанию на все мои страницы в моем проекте Ionic 5.

Раньше это работало, но когда я размещаю навигацию по вкладкам, кнопка не отображается и не работает. Если я добавлю стиль css, он отобразит кнопку, но не перейдет на предыдущую страницу.

Если я добавлю defaultHref="/tablinks/home" , он перейдет на страницу, которую я разместил, но я хочу, чтобы она переходила на предыдущую страницу, и я использую ее на всех своих страницах. Любая помощь?

  `<ion-buttons slot="start"> <ion-back-button defaultHref="/tablinks/home"></ion-back-button> </ion-buttons>`
  

Ответ №1:

Использование ion-back-button с вкладками работает немного странно по сравнению с тем, что вы ожидаете.

Допустим, у вас есть 3 вкладки: ВКЛАДКА СЛЕВА, ВКЛАДКА ПОСЕРЕДИНЕ, вкладка СПРАВА. Если вы добавите кнопки ion-back-buttons ко всем экземплярам вкладок, они не будут отображаться при переключении между этими вкладками, потому что каждая вкладка имеет свой собственный навигационный стек.

Вы посещаете другой маршрут на вкладке СЛЕВА, вы добавляете его в стек: теперь должна отображаться кнопка возврата ion. Если вы измените сейчас на TAB MIDDLE (который все еще находится в root), кнопка возврата исчезнет из-за стека навигации TAB MIDDLE, который в настоящее время находится в root.

Вернитесь к левой вкладке, вы находитесь на втором просмотре, кнопка «Назад» снова появится, если вы нажмете на нее, она снова приведет вас к корню левой вкладки.

Итак, у вас есть 3 независимых экземпляра стека. Как вы сказали, defaultHref приведет к тому, что каждая кнопка возврата вернется к фиксированному маршруту как root. Это не то, чего кто-либо ожидал.

Если вы хотите использовать перепутанную навигацию, скажем, если вы начнете с ЛЕВОЙ вкладки, а затем нажмете на СЕРЕДИНУ ВКЛАДКИ, и нажатие кнопки «Назад» приведет вас обратно к левой вкладке, вы должны сделать это с помощью собственной службы стека навигации.

Комментарии:

1. Это имеет смысл — но я попытался добавить пользовательский обработчик щелчков на кнопках вкладок, выполняя определенный маршрут, но он по-прежнему ведет себя так, как описано в исходном вопросе? (click)="route('/client/settings')" => this.router.navigateByUrl(path); — он по-прежнему не добавляет маршруты в стек навигации