Ionic 3:如何仅在按下后退按钮时才使 ionViewWillEnter?

Ionic 3: How make ionViewWillEnter only when back button pressed?

我已阅读Navigating Lifecycle Events

我的用例是。我必须在页面加载时以及从另一个页面按下后退按钮时刷新内容。

ionViewDidLoad(){
   this.getProjects();
}

ionViewWillEnter(){
   this.getProjects();
}

这工作正常,但当然 ionViewWillEnter 也会在第一页加载时运行。所以触发了两个 api 请求 (ionViewDidLoad + ionViewWillEnter)。有没有办法限制他们,比如设置标志什么的?

使用这个:

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

  onClickBackButton(event)
  {

  }

您可以为此目的使用事件。每当用户点击后退按钮时,像这样发布事件:

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

从要刷新数据的页面订阅此事件:

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

参考这个:https://ionicframework.com/docs/v3/api/util/Events/

此问题的问题是您必须从当前页面可以导航到的所有页面发布事件。