このファイル( https://github.com/ReactTraining/react-router/blob/v0.13.3/modules/createRouter.js )で確認できますが、更新機能はありますが、それをどう呼ぶかを考えてください。反応ルーターはかなり新しいので、hashHistoryを使用していくつかのページ間を数回移動するためだけに使用しました。
現在、私はそれを使用しようとしているので、インストールが失敗した場合、ユーザーは、インストールが行われるページ(ユーザーが現在表示されているページ)を更新することで、実行を計画している「再試行」オプションを選択できます。任意の助けをいただければ幸いです。
これは、Webアプリではなく、electronで実行されるノードアプリです。
本当に必要ありませんreact-router
このため。 location.reload
:
location.reload();
また、リンクした反応ルーターのバージョンは非常に古く、現在v4にあるときにv1にリンクしていると思います。
反応ルータを使用していると思います。別の投稿から回答をコピーします。したがって、それを行う可能性はほとんどありません。現在、私のお気に入りの方法は、コンポーネントpropで匿名関数を使用することです。
<Switch>
<Route exact path="/" component={()=><HomeContainer/>} />
<Route exact path="/file/:itemPath/:refHash" component={()=><File/>} />
<Route exact path="/:folderName" component ={()=><Folder/>}/>
</Switch>
または、現在のurlパラメーターで更新したい場合は、追加のルート(リロード)が必要になり、ルータースタックで少し遊んでください:
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>
これを使用して、現在のルートを更新できます。
import createHistory from 'history/createBrowserHistory'
const history = createHistory();
history.go(0)
this 回避策を試すことができます:
// I just wanted to reload a /messages page
history.pushState(null, '/');
history.pushState(null, '/messages');
履歴オブジェクトをプッシュしてから、コンポーネントをwithrouter
にバインドするか、window.location.href = url
リダイレクト..