Zunächst bin ich ziemlich vertraut mit der withRouter HoC, aber in diesem Fall hilft es nicht, weil ich nicht auf das Objekt history
in einer Komponente zugreifen möchte .Zugriff auf History-Objekt außerhalb einer React Component
Ich versuche, einen Mechanismus zu erreichen, der den Benutzer auf die Anmeldeseite umleiten wird, wenn ich eine 401 von einem API-Endpunkt zurückbekomme. Um http-Anfragen zu stellen, verwende ich axios. Ich habe ungefähr 60 Endpunkte, die ich abdecken muss, die in einem Dutzend Komponenten in meiner App verwendet werden.
Ich mag eine Dekorateur Funktion des axios Instanz-Objekt erstellen, dass:
1. makes the request
2. if fail && error_code = 401, update user route to `/login`
3. if success, return promise
Das Problem, das ich mit der oben habe, ist die Route des Benutzers zu aktualisieren. Zuvor konnte ich in react-router-v3
das browserHistory
Objekt direkt aus dem React-Router-Paket importiert haben, was nicht mehr möglich ist.
Meine Frage ist also, wie kann ich auf das History-Objekt außerhalb der React-Komponente zugreifen, ohne es über den Call-Stack zu übergeben?
In der aktuellen Version zu finden, mit Geschichte und weitergeben als eine Stütze wird, was mit nicht in der Lage Komponente zu machen. Grundsätzlich passiert, URL ändert sich, aber die Komponente wird nicht gerendert, es sei denn, Sie aktualisieren die Seite nicht. – cool
@cool stellen Sie sicher, dass Sie Router verwenden, nicht BrowserRouter/HashRouter usw. – BTMPL