さまざまな場所でトースト通知を受け取るIonic 2アプリがあります。Ionicアプリでトースト通知を適切に処理する方法
この例の良い例は、ユーザーがアプリでプロフィールを更新し、いくつかの妥当性チェックを行うところです。ユーザーが何らかの検証に失敗した場合は、次のように呼び出すことがあります。
let toast = this.toastCtrl.create({
message: 'Sorry, your password must be at least 6 characters long. Your account was not updated.',
duration: 3000,
position: 'top'
});
toast.present();
問題はありません。それは3秒間表示され、消えます。
一度に複数を表示すると問題が発生します。例えば、ユーザは6文字のパスワードを入力するかもしれないが、それは別の理由で検証されませんので、別のトースト通知が発生します
はlet toast = this.toastCtrl.create({
message: 'Sorry, your passwords do not match. Your account was not updated.',
duration: 3000,
position: 'top'
});
toast.present();
これが重なるように2つの乾杯を引き起こし、1は永久に残ります。 2つのオーバーラップは問題ではありませんが、無期限に残っている事実は大きな問題です。
毎回toast
という変数を効果的に上書きしているからです。
これにはどのような方法が最適ですか? toast1
、toast2
などは、ユーザーが同じトースト通知を2度起動する可能性があるため、問題を解決できないため、そのようなことは望ましくありません(< 6文字のパスワード、2回送信)。
どのようにあなたのトーストを作成するのですか?私は同時に複数のトーストを作り、すべては期待どおりに動作します。 – Duannx
ちょうど 'トースト= this.toastCtrl.create({...}); toast.present(); '私は実験室でテストしただけですが( 'ionic serve --lab')、デバイス上で同じであると仮定します。 – Mike
[この回答](https://stackoverflow.com/questions/45074161/prevent-duplicate-toast-messages-in-ionic2/45074283#45074283)を確認してください。すべてのトーストに同じプロパティを使用することで、毎回トーストを1つだけ表示することができます(検証メッセージの場合は、トーストを重ねることは意味がありません)。 – sebaferreras