我有一個搜索欄ion-searchbar,當我搜索時,我將結果存盤在一個 Promise 陣列中。我面臨的問題是當我搜索然后使用后退按鈕時——我的結果保留在上一次搜索的陣列中。
清空我的陣列的唯一方法是重新加載整個頁面,否則陣列將繼續附加結果而不是清空它。
初始結果頁面
點擊回傳按鈕并再次搜索
從我的搜索服務它回傳一個承諾物件陣列:Promise<GetSearchResults[]>
我的GetSearchResults物件看起來像這樣:
export interface GetSearchResults {
title: string;
id: string;
}
在我的Search Page我有:
export class SearchPage implements OnInit {
query: string;
results: Promise<GetSearchResults[]>;
constructor(
private route: ActivatedRoute,
private search: SearchQueryService
) {}
ngOnInit() {
this.route.paramMap.subscribe(async (params) => {
this.query = params.get('query');
console.log('Params -> ' JSON.stringify(params));
if (this.query != null) {
console.log('Query => ' this.query);
this.results = this.search.searchPages(this.query);
}
});
}
}
我面臨的問題是每個路由器導航到我的搜索頁面:
this.router.navigate(['/search', this.query]);
如果之前設定了搜索頁面的陣列,則它不會以空的結果陣列開頭。
this.results = this.search.searchPages(this.query);<- 該陣列不斷追加結果,除非頁面完全重新加載,否則該陣列不為空
uj5u.com熱心網友回復:
只需在 ionViewDidLeave 或 ionViewWillEnter 上洗掉您的結果即可在此處閱讀有關 Ionic 頁面事件的更多資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/424048.html
下一篇:運行離子服務時
