React Router ändert URL, aber nicht anzeigen

10

Ich habe Probleme beim Ändern der Ansicht in Reaktion auf Routing. Es scheint, dass ich alles versucht habe, was ich ohne Glück googlen kann. Ich möchte nur eine Liste von Benutzern anzeigen, und wenn ich auf jeden Benutzer klicke, sollte ich zu einer Detailseite navigieren. Hier ist der Router:

%Vor%

Wenn ich die URL / Details verwende, navigiert mein Browser zu dieser URL, ändert aber nicht die Ansicht. Jede andere Route löst 404 aus, so dass sie die Route zu erkennen scheint, aber nicht aktualisiert.

    
MARyan87 11.04.2017, 16:42
quelle

5 Antworten

9

Sie müssen das Attribut exact für Ihre indexRoute angeben, andernfalls wird es für die Ebene /details route immer noch mit / übereinstimmen. Versuchen Sie auch, Route von react-router-dom

zu importieren %Vor%

UPDATE:

Sie müssen auch Ihre Komponente User mit withRouter anhängen. Sie müssen withRouter nur verwenden, wenn Ihre Komponente nicht Router props ,

empfängt

Das kann passieren, wenn Ihre Komponente ein geschachteltes Kind einer vom Router gerenderten Komponente ist oder Sie die Router-Requisiten nicht an sie weitergegeben haben oder wenn Die Komponente ist nicht mit dem Router verbunden und wird als separate Komponente von den Routen gerendert.

Fügen Sie in Users.js

hinzu %Vor%

DOCS

    
Shubham Khatri 11.04.2017 17:31
quelle
0

Ich habe auch Schwierigkeiten getroffen.

https://github.com/chengjianhua/templated-operating-system

Und ich habe die Lösungen von Shubham Khatri versucht, aber es funktioniert nicht.

Ich habe dieses Problem gelöst, kann Ihnen vielleicht helfen.

https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/blocked-updates.md

Gemäß dem obigen Leitfaden, wenn Sie PureComponent verwenden oder mit Tools zur Statusverwaltung wie redux , mobx ... verwenden, kann dies die Aktualisierung Ihrer Route blockieren. Überprüfen Sie Ihre Routenkomponente, stellen Sie sicher, dass Sie die Neuzustellung Ihrer Komponente nicht blockiert haben.

    
ZAZ 12.04.2017 03:25
quelle
0

Probieren Sie das aus,

%Vor%     
Vaibhav Singh 12.04.2017 07:09
quelle
0

Sie sollten dies überprüfen: Ссылка

Daher ist es definitiv nicht Users oder Details , weil sie direkt von <Route> gerendert werden, und location wird an props übergeben.

Ich frage mich, warum brauchen Sie das <div> zwischen <BrowserRouter> und <Route> ? Entfernen Sie das und lassen Sie mich wissen, ob es funktioniert.

    
yuji 27.07.2017 06:01
quelle
0

Hmm, es gibt keinen Switch, um die Ansichten zu wechseln.

So verwende ich den Router, um von der Landing-Seite zur Hauptseite zu wechseln

%Vor%

Ссылка

ups ich fand, dass Sie verschiedene Router verwenden ..sorry dann vielleicht diese Geige für Sie nützlich sein

Ссылка

vielleicht Schlüssel der Lösung ist hiden in Zeile für Haupt-Render-Funktion ..

%Vor%     
Martin Abilev 27.07.2017 06:23
quelle

Tags und Links