Ich kann in dieser Datei sehen (https://github.com/ReactTraining/react-router/blob/v0.13.3/modules/createRouter.js), dass es eine Aktualisierungsfunktion gibt, aber ich habe keine Ahnung, wie ich sie aufrufen soll. Ich bin ziemlich neu im React-Router, ich habe ihn nur verwendet, um ein paar Mal mit hashHistory zwischen einigen Seiten zu wechseln.
Im Moment versuche ich, es so zu verwenden, dass der Benutzer beim Fehlschlagen einer Installation die Option erhält, es erneut zu versuchen, was ich ausführen möchte, indem ich die Seite aktualisiere, auf der die Installation stattfindet (die Seite, auf der sich der Benutzer gerade befindet). Jede Hilfe wäre willkommen.
Dies ist eine Node-App, die auf Elektron läuft, keine Web-App.
sambelhaft
Fügen Sie zunächst den React-Router als Abhängigkeit hinzu
`yarn add react-router` or `npm install react-router`
import { useHistory } from 'react-router'
const history = useHistory()
/////then add this to the function that is called for re-rendering
history.go(0)
Dadurch wird Ihre Seite automatisch neu gerendert
Verwenden Sie für den React-Router V6 stattdessen den useNavigate-Hook
import { useNavigate } from 'react-router'
const navigation = useNavigate()
navigieren(0)
Dies funktioniert, wenn ein Cookie in einem onClick-Ereignis gelöscht wird, mit dem Sie Ihren Authentifizierungsstatus handhaben history.go() Ich werde wie beabsichtigt abgemeldet und zum Anmeldebildschirm geschoben. Hat mit den anderen Antworten nicht wie beabsichtigt für mich funktioniert.
– Lucas Reppe Welander
8. Juni 2020 um 9:10 Uhr
Nicht wirklich SPA-Ansatz. Ich denke, diese Empfehlung ist zu kritisieren
– Ott
31. Oktober 2021 um 18:43 Uhr
Ich baue eine Web-App mit React und Express.js, und dieser Vorschlag hat für mich wie ein Zauber gewirkt. Beifall
– Giovanni Pizzato
17. November 2021 um 12:30 Uhr
Funktioniert nicht mit React-Router v6 (versucht navigate(0)).
Sie können dies verwenden, um die aktuelle Route zu aktualisieren:
import createHistory from 'history/createBrowserHistory'
const history = createHistory();
history.go(0)
dies verursacht ein Neuladen der gesamten Seite
– Aleksej L.
20. November 2019 um 14:21 Uhr
Etwas Ähnliches, wenn Sie Hooks verwenden – dies funktioniert für useHistory von React-Router-Dom. Aber ja, komplett Seite neu laden
– Julian
5. August 2021 um 20:01 Uhr
Brauchst du nicht wirklich react-router dafür. Sie können einfach verwenden location.reload:
location.reload();
Auch die Version von React-Router, mit der Sie verknüpft sind, ist sehr alt. Ich denke, sie verknüpft mit v1, wenn sie derzeit auf v4 ist.
Darko Pranjić
Ich vermute, dass Sie React-Router verwenden. Ich kopiere meine Antwort aus einem anderen Beitrag. Sie haben also nur wenige Möglichkeiten, dies zu tun. Derzeit verwende ich am liebsten die anonyme Funktion in der Komponenten-Prop:
Oder wenn Sie mit aktuellen URL-Parametern aktualisieren möchten, benötigen Sie eine zusätzliche Route (neu laden) und spielen ein wenig mit dem Router-Stack: