Ich habe einen globalen Eventbus auf Vue2. Das Ereignis wird von einer untergeordneten Komponente erfasst und zeigt einen modalen Bootstrap-Popup-Dialog.
Emit:
mounted: function() {
setTimeout(() => {
this.showInfoDialog();
}, 3000);
},
...
showInfoDialog: function() {
eventBus.$emit('showInfoDialog');
this.infoDialogDisplayed = true;
}
Die Ereignis-Listener auf untergeordnete Komponente wie folgt aussehen:
created: function() {
eventBus.$on('showInfoDialog', this.onShowDialog);
},
...
onShowDialog: function() {
$('#info-modal').modal('show');
},
Nach dem Dialog zeigt ich eine "Unresponsive Seite" alert bin immer die manchmal passiert (es ist nicht wiederholbar).
Soll der $ emit in einem $ nextTick aufgerufen werden? Was könnte das Problem sein?
Versuchen Sie, Log-Kommentare zu den Funktionen hinzuzufügen, um zu sehen, ob etwas mehr als erwartet aufgerufen wird. – d00dle
Welche Beziehung besteht zwischen den beiden Codeabschnitten, die Sie angezeigt haben? Ist alles auf einer Komponente? Oder separate Komponenten? – thanksd
Dank @ d00dle Sie das Problem getroffen, wird das Intervall 3 mal ausgeführt! Irgendwelche Hinweise darauf, was es sein kann? – jigarzon