3
votes

La propriété 'onDidDismiss' n'existe pas sur les types ionique 4 et angulaire

Je développe une application et j'ai la classe suivante dans TypeScript.

Je veux essayer d'obtenir les données dans une méthode de rappel de type dans «ModalController» quand il rejette le modal:

< pre> XXX

J'ai cette erreur:

core.js: 15724 ERROR Erreur: Uncaught (promis): TypeError: Cannot lire la propriété 'onDidDismiss' de undefinedTypeError: impossible de lire propriété 'onDidDismiss' de undefine


4 commentaires

ionicframework.com/docs/api/modal#usage


@FernandoPie avez-vous pu résoudre ce problème?


@sebaferreras OH ouais sebas J'ai trouvé ma solution ici: medium.com/@david.dalbusco/...


@FernandoPie ok heureux d'apprendre que vous avez résolu le problème. Lorsque vous posez une question sur SO, prenez le temps d'examiner les réponses pour voir si l'une d'entre elles peut résoudre votre problème, et si ce n'est pas le cas et que vous trouvez une meilleure solution, vous pouvez ajouter votre propre réponse. De cette façon, vous pouvez accepter une réponse et fermer la question. Sinon, votre question restera ouverte, ce qui fera penser aux autres utilisateurs qu'elle n'a pas du tout de solution. L'objectif est simplement d'aider d'autres utilisateurs confrontés au même problème à trouver le moyen de le résoudre.


3 Réponses :


0
votes

Puisque vous utilisez await pour créer le modal, vous n'avez pas besoin d'utiliser puis comme ça.

Veuillez essayer ce qui suit: p>

// Dismiss the modal returning some data object
modalController.dismiss({
  'result': 'This is the result returned by the modal!'
});

Le code ci-dessus suppose que vous retournez quelque chose lors du rejet du modal, comme ceci:

async addItem()  {

  // Create the modal
  const modal = await this.modalCtrl.create({   
    component: AddItemPage,
    componentProps: {
      'prop1': "cadena!!!!!!!"   
    } 
  });

  // Present the modal
  return await modal.present();

  // Wait for the modal to be dismissed before continuing...
  const eventDetails = await modal.onDidDismiss();

  if (eventDetails) {
    console.log(eventDetails.data);
  }

  // ...

}


0 commentaires

-1
votes

Essayez:

const modal = await modalController.create({...});
const { data } = await modal.onDidDismiss();
console.log(data);

Conformément à la documentation officielle .


0 commentaires

4
votes

Comment est-il lié dans ce post: https://medium.com/@david.dalbusco/how-to-declare-and-use-modals-in-ionic-v4-4d3f42ac30a3 Mon erreur était simplement de savoir comment je créais le modal. J'ai suivi ce code pour créer ma propriété modale.

async openModal() {
    const modal: HTMLIonModalElement =
       await this.modalController.create({
          component: DatePickerModal,
          componentProps: {
             aParameter: true,
             otherParameter: new Date()
          }
    });

    modal.onDidDismiss().then((detail: OverlayEventDetail) => {
       if (detail !== null) {
         console.log('The result:', detail.data);
       }
    });

    await modal.present();
}


0 commentaires