React Router funktioniert beim Reload, aber nicht beim Klicken auf einen Link

9

Ich habe das React mit react-router version 4 eingerichtet. Das Routing funktioniert, wenn ich die URL direkt im Browser eingebe, aber wenn ich auf den Link klicke, ändert sich die URL im Browser (zB Ссылка ), aber der Inhalt wird nicht aktualisiert (Aber wenn ich eine Aktualisierung mache, wird sie aktualisiert).

Unten ist mein Setup:

Die Routen.js richten sich wie folgt ein:

%Vor%

Der Link, den ich in Nav.js verwende, lautet wie folgt:

%Vor%

Die App.js lautet wie folgt:

%Vor%     
Suthan Bala 04.06.2017, 16:38
quelle

3 Antworten

3

Das Umpacken Ihrer Komponente mit withRouter sollte die Aufgabe für Sie erledigen. withRouter wird für eine Komponente benötigt, die Link oder andere Router reps verwendet und nicht Router props entweder direkt von Route oder von Parent Component

erhält

Router Props sind für die Komponente verfügbar, wenn sie wie

aufgerufen wird %Vor%

oder

%Vor%

oder wenn Sie Links als direkte Kinder des Router-Tags wie

platzieren %Vor%

Wenn Sie den untergeordneten Inhalt innerhalb des Routers als Komponente schreiben möchten, wie

%Vor%

Die Router-Requisiten sind für die App nicht verfügbar und können daher mit einer Route wie

weitergeleitet werden %Vor%

Allerdings kommt withRouter in Handy, wenn Sie die Routerrequisiten einer hoch verschachtelten Komponente bereitstellen möchten. Überprüfen Sie diese Lösung

%Vor%     
Shubham Khatri 04.06.2017, 17:34
quelle
1

Ich würde Ihre Komponenten durchgehen und sicherstellen, dass Sie nur ein <Router> ... </Router> haben. Auch - stellen Sie sicher, dass Sie eine <Router>...</Router> haben. Es kann Fälle geben, in denen Sie mehr als eine verwenden, aber wenn Sie versehentlich verschachtelte Router haben (weil Sie schnell gehackt haben und vergessen haben, eine zu entfernen, wenn Du hast es an alle möglichen Orte verschoben ;-) - es könnte ein Problem verursachen.

Ich würde es versuchen

%Vor%

In Ihrer obersten Komponente (App.js).

    
Peege151 14.09.2017 06:42
quelle
0

Möglicherweise zwei Dinge:

  1. Haben Sie { Link } from 'react-router-dom' in Ihre Nav.js-Datei importiert?

  2. Möglicherweise Rechtschreib- / Großschreibungfehler: Sie exportieren export default routes (Kleinbuchstaben), aber import Routes from './../routes (Großbuchstaben).

sperfecto 04.06.2017 16:52
quelle