Angular2-тостер думает, что два тоста являются дубликатами? - PullRequest
1 голос
/ 06 февраля 2020

Я использую тостер angular2 и пытаюсь понять, почему 2 тоста с разными сообщениями считаются «дублирующими», и поэтому появляется только 1 тост. Мне бы хотелось, чтобы оба тоста появились.

У меня есть этот код:

var toast: Toast = {
  type: 'error',
  title: "one toast, from one dev to another",
};
var toast2: Toast = {
  type: 'error',
  title: "another toast, yo!",
};

this.toasterService.pop(toast);
this.toasterService.pop(toast2);

И в отдельном файле у меня есть этот тостер:

this.config = new ToasterConfig({
  positionClass: "toast-top-center",
  timeout: 10000,
  newestOnTop: true,
  tapToDismiss: true,
  preventDuplicates: true,
  animation: "fade",
  limit: 3,
});

Что про эти тосты есть "дубликаты", кроме типа?

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020

Этот компонент проверяет toastId и body на наличие дубликатов.

исходный код:

if (this.toasterconfig.preventDuplicates && this.toasts.length > 0) {
  if (toast.toastId && this.toasts.some(t => t.toastId === toast.toastId)) {
    return;
  } else if (this.toasts.some(t => t.body === toast.body)) {
    return;
  }
}

Так как у ваших тостов нет тела, они совпадают и не проходят проверку на дубликаты.

var toast: Toast = {
  type: 'error',
  title: 'one toast, from one dev to another',
  body: 'test'
};
var toast2: Toast = {
  type: 'error',
  title: 'another toast, yo!',
  body: 'test2'
};
this.toasterService.pop(toast);
this.toasterService.pop(toast2);

Это должно работать.

1 голос
/ 06 февраля 2020

Я согласен с ответом digitalkoi .

Небольшое дополнение: если вы хотите использовать тосты без тела, вы также можете настроить preventDuplicates на false.

this.config = new ToasterConfig({
  positionClass: "toast-top-center",
  timeout: 10000,
  newestOnTop: true,
  tapToDismiss: true,
  ★preventDuplicates: false,
  animation: "fade",
  limit: 3,
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...