Vue-Router erlaubt keine Navigation zum aktuellen Standort (/Pfad) Fehlerursachen und -behebungen

Vue-Router erlaubt keine Navigation zum aktuellen Standort (/Pfad) Fehlerursachen und -behebungen

Fehlermeldung

Die Navigation zum aktuellen Standort ("/Pfad") ist nicht erlaubt

Die Navigation zum aktuellen Standort ("/Pfad") ist nicht erlaubt

Ursache

Wenn die Konsole die obige Meldung anzeigt Navigating to current location ("/path") is not allowed , liegt dies daran, dass dieselbe Route wiederholt eingegeben wurde.

Fehlerdemonstration

Um den Fehler zu demonstrieren, wurde ein neues Projekt mit vue-cli neu erstellt und lediglich ein按鈕und eine input geschrieben.
Code:

<!-- Vue-Vorlagencode -->
<div>
	<button @click="gotoHandle">Routensprung testen</button>
	<input v-model="Routenname">
<div>
// Routing-Code Export Standard {
  Daten() {
    zurückkehren {
      Routenname: ''
    }
  },
  Methoden: {
    gehe zuHandle() {
      dies.$router.push({name: this.routeName})
    }
  }
}

Animierte Demo

Die Navigation zum aktuellen Standort ("/Pfad") ist nicht erlaubt

Wenn Sie dieselbe Route wiederholt eingeben (sei es über den Pfad oder den Routennamen), werden Sie darauf hingewiesen, dass die Navigation zum aktuellen Standort ( path ) nicht zulässig ist. Im obigen Beispiel lautet die Eingabeaufforderung beispielsweise bei der Eingabe der Route mit dem Namen About path: "/about" und die Navigation zum aktuellen Standort ("/about") ist nicht zulässig. Dies liegt daran, dass bei einer falschen Sprungmethode die Fehlerbehandlung nicht erfasst wird und die Fehlerinformationen daher direkt ausgegeben werden.

Problemumgehung

Methode 1

Fügen Sie .catch(error => error) direkt an der Stelle hinzu, wo der Fehler gemeldet wird

Standard exportieren {
  Daten() {
    zurückkehren {
      Routenname: ''
    }
  },
  Methoden: {
    gehe zuHandle() {
      dies.$router.push({name: this.routeName}).catch(Fehler => Fehler)
    }
  }
}

Methode 2

Fügen Sie der Methode, die zum Fehler springt, eine globale Fehlererfassung hinzu.

VueRouter von „vue-router“ importieren

const routerPush = VueRouter.prototype.push
VueRouter.prototype.push = Funktion (Standort) {
  returniere routerPush.call(diesen, Standort).catch(Fehler => Fehler)
}

Der obige Code ist derselbe, wenn er in main.js oder router/index.js sowie vor und nach new VueRouter ausgeführt wird. Da es sich um ein push -Ereignis beim zurückgesetzten VueRouter Prototypobjekt handelt, wird push -Ereignis des Prototypobjekts eine Erfassungsausnahme hinzugefügt, sodass alle zugehörigen Objekte über die Prototypkette geändert werden.

Der Duplikatssprungfehler der replace ähnelt dem oben genannten. Ändern Sie einfach push replace .

Methode 3

Diese Methode wird empfohlen. Es empfiehlt sich, die Sprunglogik zu optimieren, um wiederholte Sprünge zur gleichen Route zu vermeiden.

Dies ist das Ende dieses Artikels über die Fehlerursache und -behebung, wenn Vue-Router keine Navigation zum aktuellen Standort (/Pfad) zulässt. Weitere verwandte Inhalte zur Navigation zum aktuellen Standort über Vue-Router finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Verwenden Sie vue3.x+vite+element-ui+vue-router+vuex+axios, um ein Projekt zu erstellen
  • Ein super detailliertes Vue-Router Schritt-für-Schritt-Tutorial
  • Der Unterschied zwischen Hash-Modus und Verlaufsmodus im Vue-Router
  • Detaillierte Erklärung zur Installation und Verwendung von Vue-Router
  • Führen Sie die folgenden Schritte aus, um Vue-Router in Vue3 zu verwenden
  • Lazy Loading beim Vue-Router-Routing und 3 Möglichkeiten zur Implementierung
  • Detaillierte Erklärung des Unterschieds zwischen Hash-Modus und Verlaufsmodus im Vue-Router
  • vue-router definiert Metadaten-Metaoperationen
  • Erste Praxis von vue3.0+vue-router+element-plus
  • Detaillierte Erklärung des Navigations-Hooks (Navigation Guard) des Vue-Routers
  • Detaillierter Installationsprozess und Prinzip des Vue-Routers

<<:  Analyse der neuen Funktionen von MySQL 8.0 - Transaktionales Datenwörterbuch und Atomic DDL

>>:  Verwendung des Linux-Befehls ls

Artikel empfehlen

So installieren Sie eine PHP7 + Nginx-Umgebung unter CentOS6.6

Dieser Artikel beschreibt, wie man eine PHP7 + Ng...

Der visuelle Designpfad der Website sollte den Benutzergewohnheiten entsprechen

Cooper sprach über den visuellen Pfad des Benutze...

Zusammenfassung der Möglichkeiten zur Implementierung von Single Sign-On in Vue

Das Projekt wurde vor Kurzem ausgesetzt und die U...

Vue verwendet Regeln zur Implementierung der Formularfeldvalidierung

Es gibt viele Möglichkeiten, Formularfelder in Vu...

Bringen Sie Ihnen bei, ein einfaches Versprechen Schritt für Schritt umzusetzen

Inhaltsverzeichnis Schritt 1: Erstellen Sie das F...

Beispielcode zur Implementierung einer einfachen Suchmaschine mit MySQL

Inhaltsverzeichnis Vorwort Einführung Ngram-Vollt...

Einführung mehrerer benutzerdefinierter Schriftarten in CSS3

Heute habe ich ein Problem in HTML gefunden. Es s...

So exportieren Sie MySQL-Abfrageergebnisse in CSV

Um MySQL-Abfrageergebnisse in CSV zu exportieren,...

Integrationspraxis des Vue+Element-Hintergrundverwaltungsframeworks

Inhaltsverzeichnis Vue+ElementUI-Hintergrundverwa...