私はケースを持っています:ユーザーはアクティベーションリンクを開きます。ユーザーがアクティベーションプロセスを完了すると、システムは彼を別のページに移動させます。私はブラウザ上でアクティベーションURLを保持し、ユーザがアクティベーションステップに戻るのを防ぐつもりはありません。React-router:URLを変更して履歴をクリアする
このケースはどうすれば入手できますか?
おかげで、
私はケースを持っています:ユーザーはアクティベーションリンクを開きます。ユーザーがアクティベーションプロセスを完了すると、システムは彼を別のページに移動させます。私はブラウザ上でアクティベーションURLを保持し、ユーザがアクティベーションステップに戻るのを防ぐつもりはありません。React-router:URLを変更して履歴をクリアする
このケースはどうすれば入手できますか?
おかげで、
HTML5履歴API Adding and modifying history entries
に2つのメソッドを提供します。
pushState()
:あなたはreact-router
を使用していると仮定していないバック状態
:バック状態は replaceState()
を保存しました。 だから、あなたのコンポーネントの使用上の
this.props.history.replaceState('your new state')
続きを読む:https://developer.mozilla.org/en-US/docs/Web/API/History_API
ビデオ:あなたは、この目的のためにbrowserHistory
を使用する必要がありますreactJSでhttps://www.youtube.com/watch?v=1iAG6h9ff5s&index=6&list=PLoYCgNOIyGABj2GQSlDRjgvXtqfDxKm5b
。これはあなたの履歴を管理し、あなた自身でこれらの機能を実装する必要はありません。
browserHistoryには、@ fazalと同じ機能を果たす2つの方法push()
とreplace()
がありますが、その答えはより良い方法です。
あなたが戻って以前の状態に行くのユーザーを避けたいのであれば、あなたのコードにそれをインポートしてbrowserHistory().replace
スタートを使用する必要があります: -
import {browserHistory} from 'react-router'
ユーザーが起動した後には、次の操作を行います。 -
browserHistory.replace(//your new link)
こんにちは、 私はこの方法を試しましたが、私はまだブラウザでURLを書き換えることができません。 (私はURLの変更がSPAアプリケーションの共通の動作ではないことを知っています。) – user3468795
最後に、これらのステートメントによって回避することができます。 history.replaceState({}、document.title、URL)。 props.router.replace(url); – user3468795