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.
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
UPDATE:
Sie müssen auch Ihre Komponente User mit withRouter
anhängen. Sie müssen withRouter
nur verwenden, wenn Ihre Komponente nicht Router props
,
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%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.
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.
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%Tags und Links reactjs react-router