Kann jemand den Unterschied zwischen erklären
<Route exact path="/" component={Home} />
und
<Route path="/" component={Home} />
Ich kenne die Bedeutung von "genau" nicht.
Kann jemand den Unterschied zwischen erklären
<Route exact path="/" component={Home} />
und
<Route path="/" component={Home} />
Ich kenne die Bedeutung von "genau" nicht.
Antworten:
In diesem Beispiel eigentlich nichts. Der
exact
Parameter kommt ins Spiel, wenn Sie mehrere Pfade mit ähnlichen Namen haben:Stellen Sie sich zum Beispiel vor, wir hätten eine
Users
Komponente, die eine Liste von Benutzern anzeigt. Wir haben auch eineCreateUser
Komponente, mit der Benutzer erstellt werden. Die URL fürCreateUsers
sollte unter verschachtelt seinUsers
. Unser Setup könnte also ungefähr so aussehen:Wenn wir jetzt zum
http://app.com/users
Router gehen, durchläuft das Problem alle definierten Routen und gibt die ERSTE gefundene Übereinstimmung zurück. In diesem Fall würde es also zuerst dieUsers
Route finden und sie dann zurückgeben. Alles gut.Aber wenn wir zu
http://app.com/users/create
gehen würden, würde es wieder alle unsere definierten Routen durchlaufen und das ERSTE Match zurückgeben, das es findet. React Router führt teilweise Übereinstimmungen durch, stimmt also/users
teilweise überein/users/create
, sodass dieUsers
Route fälschlicherweise wieder zurückgegeben wird!Der
exact
Parameter deaktiviert die teilweise Übereinstimmung für eine Route und stellt sicher, dass die Route nur zurückgegeben wird, wenn der Pfad genau mit der aktuellen URL übereinstimmt.In diesem Fall sollten wir
exact
unsereUsers
Route so ergänzen , dass sie nur auf Folgendes passt/users
:Die Dokumente erklären
exact
ausführlich und geben andere Beispiele.quelle
exact
sollte meiner Meinung nach die Standardeinstellung sein/admin//users
in der Admin-Komponente und/admin/users/create
in der Root-Komponente? Ich habe derzeit diese Situation und die typischeexact
Lösung funktioniert nicht richtig.Kurz gesagt, wenn Sie mehrere Routen für das Routing Ihrer App definiert haben, die einer solchen
Switch
Komponente beigefügt sind .Dann müssen Sie
exact
der Route ein Schlüsselwort hinzufügen, dessen Pfad auch im Pfad einer anderen Route enthalten ist. Zum Beispiel ist der Home-Pfad/
in allen Pfaden enthalten, sodass einexact
Schlüsselwort erforderlich ist, um ihn von anderen Pfaden zu unterscheiden, die mit beginnen/
. Der Grund ist auch ähnlich wie/functions
Pfad. Wenn Sie einen anderen Routenpfad wie/functions-detail
oder verwenden möchten,/functions/open-door
der/functions
darin enthalten ist, müssen Sie ihnexact
für die/functions
Route verwenden.quelle
Schauen Sie hier: https://reacttraining.com/react-router/core/api/Route/exact-bool
genau: bool
Wenn true, stimmt dies nur überein, wenn der Pfad
location.pathname
genau mit dem übereinstimmt .quelle
Die kürzeste Antwort ist
Bitte versuchen Sie dies.
quelle
exact
Attributs / der Requisite und ist daher sicherlich keine "Antwort". Sie sollten versuchen, die tatsächlich gestellte Frage zu beantworten, anstatt eine Lösung für ein Problem zu finden, bei dem Sie sich nicht sicher sind, ob OP tatsächlich vorliegt.