Ich kann in dieser Datei ( https://github.com/ReactTraining/react-router/blob/v0.13.3/modules/createRouter.js ) sehen, dass es eine Aktualisierungsfunktion gibt, aber ich habe keine Ahnung, wie nennen. Ich bin ein relativ neuer Reaktions-Router. Ich habe ihn nur verwendet, um ein paar Mal mit Hilfe von hashHistory zwischen einigen Seiten zu wechseln.
Ich versuche gerade, es so zu verwenden, dass der Benutzer bei einem fehlgeschlagenen Installationsvorgang die Option "Wiederholen" erhält, die ich ausführen möchte, indem er die Seite aktualisiert, auf der die Installation stattfindet (die Seite, auf der sich der Benutzer gerade befindet). Jede Hilfe wäre dankbar.
Dies ist eine Knoten-App, die auf Elektron läuft, keine Web-App.
Sie brauchen react-router
dafür nicht wirklich. Sie können einfach location.reload
verwenden:
location.reload();
Auch die Version des Reakt-Routers, mit der Sie verlinkt haben, ist sehr alt. Ich denke, es ist eine Verknüpfung zu v1, wenn sie gerade auf v4 läuft.
Möglicherweise versuchen Sie, ein Verlaufsobjekt einzuschieben und binden dann Ihre Komponente mit withrouter
oder verwenden window.location.href = url
umleiten ..
Ich vermute, dass Sie React-Router verwenden. Ich werde meine Antwort aus einem anderen Beitrag kopieren Sie haben also nur wenige Möglichkeiten, dies zu tun. Derzeit ist meine Lieblingsmethode die Verwendung einer anonymen Funktion in der Komponente prop:
<Switch>
<Route exact path="/" component={()=><HomeContainer/>} />
<Route exact path="/file/:itemPath/:refHash" component={()=><File/>} />
<Route exact path="/:folderName" component ={()=><Folder/>}/>
</Switch>
Oder wenn Sie mit aktuellen URL-Parametern aktualisieren möchten, benötigen Sie eine zusätzliche Route (Reload) und spielen ein wenig mit dem Router-Stack:
reload = ()=>{
const current = props.location.pathname;
this.props.history.replace(`/reload`);
setTimeout(() => {
this.props.history.replace(current);
});
}
<Switch>
<Route path="/reload" component={null} key="reload" />
<Route exact path="/" component={HomeContainer} />
<Route exact path="/file/:itemPath/:refHash" component={File} />
<Route exact path="/:folderName" component ={Folder}/>
</Switch>
<div onCLick={this.reload}>Reload</div>
Sie könnten this Workaround versuchen:
// I just wanted to reload a /messages page
history.pushState(null, '/');
history.pushState(null, '/messages');
Sie können dies zum Aktualisieren der aktuellen Route verwenden:
import createHistory from 'history/createBrowserHistory'
const history = createHistory();
history.go(0)