после перехода на ionic 5 и angular 8 несколько модальных не отклонять

У меня есть старое приложение, разработанное с ionic 4 и angular 7, есть компонент, который представляет модальный-A, затем модальный-A представляет модальный-B, когда модальный-B отклоняется, передайте данные в модальный-A, который отклоняет и передает данные к компоненту, теперь я хочу переключиться на angular 8, новое приложение может представлять модальный-A и модальный-B, но когда модальный-B отклоняется, модальный-A не отклоняется, вот как компонент представляет модальный-A:

const modal = await this.modalCtrl.create({
      component: SelectorItemsPage,
      componentProps: {
        item: this.item,
        title: this.text,
        service: this.service,
        filterFunction: this.filterFunction,
        sorterFunction: this.sorterFunction,
        createPopup: this.createPopup

      }
    });

    modal.onDidDismiss().then(data => {
      this.item = data.data
      this.selectedItem.emit(data.data)
      this.writeValue(this.item)
      modal.dismiss(this.item)
    })
    return await modal.present()

вот как модальный-A представляет модальный-B:


    const modal = await this.modalCtrl.create({ component: this.createPopup })

    modal.onDidDismiss().then(item => {

      this.modalCtrl.dismiss(item.data)
    })

    return await modal.present()

заранее спасибо


person arpho    schedule 15.02.2020    source источник


Ответы (1)


Установите id для каждого модального окна:

const modal = await this.modalCtrl.create({
  component: SelectorItemsPage,
  componentProps: {
    item: this.item,
    title: this.text,
    service: this.service,
    filterFunction: this.filterFunction,
    sorterFunction: this.sorterFunction,
    createPopup: this.createPopup
  },
  id: 'SelectorItems'
});

а также

const modal = await this.modalCtrl.create({
    component: this.createPopup,
    id: 'Popup'
})

Поэтому при закрытии передайте id в качестве параметра:

modal.dismiss(this.item, '', 'SelectorItems')

а также

this.modalCtrl.dismiss(item.data, '', 'Popup')

Дополнительная информация: [1] https://github.com/ionic-team/ionic/issues/20369 [2] https://github.com/mluis/ionic4-modal-modal-issue/pull/1/files ‹все кредиты

person Olavo Neto    schedule 03.04.2020