this.router.navigate Вернуться на предыдущую страницу приложение ionic 4 - PullRequest
0 голосов
/ 10 октября 2019

В настоящее время я пытаюсь выяснить, как вернуться к странице на Ionic 4. Я создал проект Ionic 4, который, по моему мнению, используется по умолчанию для маршрутизатора для навигации.

Приложение открывается дома, шагичто я беру:

1) Выберите пункт меню

2) Получает переход к выбранному элементу из # 1 (Страница 1)

3) На странице 1 вы можетевернуться через ion-back-button defaultHref. На этой странице есть список ионов, в котором я могу нажать и просмотреть более подробную информацию

4) Нажмите на элемент, который приведет меня на страницу 2 (Вы также можете вернуться сюда)

5) На странице 2 есть еще один список, в котором вы можете нажать

6) щелкнуть элемент, который приведет вас на страницу 3.

Пример:

=> На главную=> Список фруктов => Список типов апельсинов => Деталь выбранного типа апельсина

Теперь это последняя страница. То, что я пытаюсь сделать, это как только элемент нажимается на шаге №. 6, если данные не могут быть загружены, отобразите предупреждение с кнопкой «Закрыть». Я пытаюсь связать эту кнопку оповещения с действием, чтобы вернуться назад.

Ответ, который я нашел, состоял в том, чтобы использовать службу определения местоположения и связать это действие:

this.location.back();

Что у меня есть, но этовозвращает пользователя обратно на главную страницу вместо предыдущей страницы. Другим ответом было использование NavController, но не нужно ли мне полностью изменить маршрутизацию моего приложения, чтобы использовать это? Есть ли способ вернуться на предыдущую страницу?

Это то, что я использую для перехода вперед на страницу:

this.router.navigate(['page1'],{replaceUrl: false});

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

ОБНОВЛЕНИЕ

Запуск Ionic Version 5.4.1

Дополнительная информация:

this.alertCtrl
  .create({
    header: 'Error',
    message: 'Failed to Load Data. Please try again later.',
    buttons: [
      {
        text: 'Close',
        handler: () => {
          this.location.back(); // Return to Home instead of Page 2 (the previous page)
        }
      }
    ]
  })
  .then(alertEl => {
    alertEl.present();
  });

Это работает нормально, но это не то, что я хочу, поскольку я делаю это программно, когда нажата кнопка закрытия оповещения:

<ion-header>
  <ion-toolbar>
    <ion-buttons slot="start">
        <ion-back-button defaultHref="/page2"></ion-back-button>
    </ion-buttons>
    <ion-title>

    </ion-title>
  </ion-toolbar>
</ion-header>

Все еще нет ответа

...