Lösung für den nicht funktionierenden Aufruf this.$notify.close() von ElementUI

Lösung für den nicht funktionierenden Aufruf this.$notify.close() von ElementUI

Anforderungsbeschreibung

Das Projekt erfordert zunächst, dass der Benutzer eine Frage auswählt. Nach der Auswahl wird die Benachrichtigungskomponente von ElementUI verwendet, um den Benutzer daran zu erinnern, dass das Dateiformat überprüft wird (es muss zuerst an das Backend übermittelt werden, vom Backend überprüft werden und dann werden die Ergebnisse an das Frontend zurückgegeben). Wenn die Formatprüfung korrekt ist, wird die Benachrichtigung geschlossen und eine MessageBox (ebenfalls eine Komponente von ElementUI) wird angezeigt, um den Benutzer darüber zu informieren, dass der Upload der Datei nicht rückgängig gemacht werden kann.

Problembeschreibung

Nachdem Sie überprüft haben, ob das Dateiformat korrekt ist, müssen Sie die entsprechende Funktion manuell aufrufen, um die Benachrichtigung zu entfernen. Laut der offiziellen Dokumentation funktionierte die Verwendung this.$notify.close() nicht und es wurde kein Fehler in der Konsole gemeldet.

Problemanalyse

Nachdem Sie this.$notify in der Konsole ausgedruckt haben, können Sie die Benachrichtigungsfunktionen wie unten gezeigt aufrufen:

Code unter dem Quellcodefenster der Konsole

Im Code können wir sehen, welche Funktionen in Notification gekapselt sind, einschließlich der Funktion close() , die zwei Parameter erfordert: id und userOnClose. Aus dem Code ist nicht schwer zu erkennen, dass die ID die ID der Benachrichtigung ist. Wenn beispielsweise mehrere Benachrichtigungen vorhanden sind, können diese selektiv geschlossen werden. userOnClose kann eine Funktion übergeben, die ein bisschen einer Rückruffunktion ähnelt. Wenn Sie die Funktion close() verwenden möchten, müssen Sie daher die ID der Benachrichtigung kennen, die Sie schließen möchten. Dies wird am Ende dieses Artikels kurz erläutert.
Wenn Sie sich den Code ansehen, können Sie sehen, dass es eine Funktion closeAll() gibt, die keine Parameter erfordert und alle Benachrichtigungen durch Durchlaufen schließt, was für das Szenario dieses Projekts geeignet ist (es muss nur eine Benachrichtigung geschlossen werden).

Problemlösung

Rufen Sie für dieses Projekt einfach this.$notify.closeAll() auf.

Fragenerweiterung

Die Hauptsache ist: Wenn es mehrere Benachrichtigungen gibt, was soll ich tun, wenn ich eine davon schließen möchte? Ich habe versucht, notify.js zu verstehen und habe festgestellt, dass die ID grundsätzlich ein Muster wie notification_seed ist, was wiederum ein String ist, der aus dem notification_-String plus einer Zahl besteht. Wenn wir uns den Quellcode ansehen, stellen wir fest, dass der anfängliche seed 1 ist, was bedeutet, dass die ID der ersten instanziierten Benachrichtigung notification_1 sein sollte. Wie in der Abbildung gezeigt:

Bildbeschreibung hier einfügen

Jetzt kommt das Problem. Ich rufe die Funktion close() auf und übergebe zwei Parameter, die korrekt zu sein scheinen, aber es funktioniert nicht:

Bildbeschreibung hier einfügen

Um mein Missverständnis bezüglich der ID zu vermeiden, habe ich sie im Browser debuggt und festgestellt, dass die ID in der Instanz (Instanz der Benachrichtigung) tatsächlich die ID war, die ich analysiert hatte:

Bildbeschreibung hier einfügen

Also habe ich das Debugging-Tool in den Entwicklertools verwendet, um die Ausführungsschritte der Funktion close() in notify.js Schritt für Schritt zu überprüfen. Ich habe festgestellt, dass es weder mit dem Code noch mit der Logik ein Problem gab. Schließlich haben Instanzen auch die Benachrichtigung mit der entsprechenden ID über die Splice-Funktion entfernt, aber die Benachrichtigung auf der Seite blieb dort und verschwand nicht (die Hauptfunktion befindet sich im rechteckigen Feld).

Bildbeschreibung hier einfügen

Das Obige sind einige meiner persönlichen Analyseversuche. Aufgrund meiner begrenzten Fähigkeiten konnte ich das Problem am Ende natürlich nicht lösen. Interessierte können es studieren.

Dies ist das Ende dieses Artikels zur Lösung des Problems, dass der Aufruf this.$notify.close() von ElementUI nicht funktioniert. Weitere verwandte Inhalte zum Aufruf this.$notify.close() von Element finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Vue löst das Problem von Zeilenumbrüchen in Eingabeaufforderungsinformationen mithilfe von $notify im Element

<<:  MySQL 8.0.18 Hash Join unterstützt keine Links-/Rechts-Joins. Probleme mit Links- und Rechts-Joins

>>:  Detaillierte Erläuterung der Installationsbefehle für Linux-Systemsoftware basierend auf Debian (empfohlen)

Artikel empfehlen

Wie lang ist eine Funktion in js?

Inhaltsverzeichnis Vorwort Warum Wie viel kostet ...

Detailliertes Installationstutorial von Docker unter CentOS

Docker ist in CE und EE unterteilt. Die CE-Versio...

So lösen Sie das Problem des verstümmelten MySQL-Inserts

Problembeschreibung: Beim Einfügen chinesischer Z...

Tutorial zur Installation von MySQL 5.6 mit RPM in CentOS

Alle vorherigen Projekte wurden in der Windows-Sy...

Einführung in die Installationsmethode in Vue

Inhaltsverzeichnis 1. Weltweit registrierte Kompo...

MySQL-Sortierung mittels Index-Scan

Inhaltsverzeichnis Installieren Sie Sakila Index-...

Verwenden Sie thead, tfoot und tbody, um eine Tabelle zu erstellen

Manche Leute verwenden diese drei Tags auf pervers...

Zwei praktische Möglichkeiten zum Aktivieren des Proxys in React

Zwei Möglichkeiten zum Aktivieren des Proxy React...

Ein Artikel zum Verständnis von MySQL Index Pushdown (ICP)

Inhaltsverzeichnis 1. Einleitung 2. Grundsatz Pra...

Linux-Plattform MySQL ermöglicht Remote-Login

Während des Entwicklungsprozesses stoße ich häufi...

So verwenden Sie Axios, um Netzwerkanforderungen in React Native zu stellen

In der Front-End-Entwicklung gibt es viele Möglic...