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/
此问题的问题是您必须从当前页面可以导航到的所有页面发布事件。
我已阅读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/
此问题的问题是您必须从当前页面可以导航到的所有页面发布事件。