Ionic 3: Как сделать ionViewWillEnter только при нажатии кнопки назад? - PullRequest
0 голосов
/ 13 марта 2019

Я прочитал Навигация по жизненным циклам событий

Мой пример использования здесь.Мне пришлось обновлять содержимое при загрузке страницы, а также при нажатии кнопки «Назад» с другой страницы.

ionViewDidLoad(){
   this.getProjects();
}

ionViewWillEnter(){
   this.getProjects();
}

это работает нормально, но, конечно, ionViewWillEnter работает и при первой загрузке страницы.поэтому два запроса API сработали (ionViewDidLoad + ionViewWillEnter).Есть ли способ ограничить их, как установка флага или что-то?

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

Вы можете использовать события для этой цели.Всякий раз, когда пользователь нажимает кнопку «Назад», публикуйте событие следующим образом:

onBackButtonPressed(){
    this.events.publish('backPressed');
}

подписывайтесь на это событие со страницы, на которой вы хотите обновить данные:

constructor(public events: Events) {
  events.subscribe('backPressed', () => {
       this.getProjects();
  });
}

См. Это: https://ionicframework.com/docs/v3/api/util/Events/

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

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

используйте это:

  ionViewDidLoad()
  {
    this.navBar.backButtonClick = this.onClickBackButton.bind(this);
  }

  onClickBackButton(event)
  {

  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...