あなたのトーストへの参照を保持し、それを提示する前に、それにdismiss()
を呼び出します。このソリューションは、一度に複数のToast
を表示させないようにします。
私が自分で使いたい解決策は、サービス内ですべてのToast
の対話を処理することです。そして、あなたはそれを必要とするものは何でもコンポーネント/ページ/サービスにして、そのサービスを注入
ToastService:
import { Injectable } from '@angular/core';
import { ToastController, Toast } from 'ionic-angular';
@Injectable()
export class ToastService{
toast: Toast = null;
constructor(private toastCtrl: ToastController){ }
presentToast(text:string):void{
let toastData = {
message: text,
duration: 3000,
position: 'top'
}
this.showToast(toastData);
}
presentClosableToast(text:string):void{
let toastData = {
message: text,
showCloseButton: true,
closeButtonText: 'X',
position: 'top'
};
this.showToast(toastData);
}
private showToast(data:any):void{
this.toast ? this.toast.dismiss() : false;
this.toast = this.toastCtrl.create(data);
this.toast.present();
}
}
はあなたの全体の.TSページを表示してください。私は無限のトーストを作ったと思います。私は同時に2つ以上のタブを使ってプロジェクトをテストしましたが、実際には解雇されました。 – Duannx