2016-09-27 28 views
11

私はケースを持っています:ユーザーはアクティベーションリンクを開きます。ユーザーがアクティベーションプロセスを完了すると、システムは彼を別のページに移動させます。私はブラウザ上でアクティベーションURLを保持し、ユーザがアクティベーションステップに戻るのを防ぐつもりはありません。React-router:URLを変更して履歴をクリアする

このケースはどうすれば入手できますか?

おかげで、

+0

最後に、これらのステートメントによって回避することができます。 history.replaceState({}、document.title、URL)。 props.router.replace(url); – user3468795

答えて

1

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

6

。これはあなたの履歴を管理し、あなた自身でこれらの機能を実装する必要はありません。

browserHistoryには、@ fazalと同じ機能を果たす2つの方法push()replace()がありますが、その答えはより良い方法です。

あなたが戻って以前の状態に行くのユーザーを避けたいのであれば、あなたのコードにそれをインポートしてbrowserHistory().replace

スタートを使用する必要があります: -

import {browserHistory} from 'react-router' 

ユーザーが起動した後には、次の操作を行います。 -

browserHistory.replace(//your new link) 
+0

こんにちは、 私はこの方法を試しましたが、私はまだブラウザでURLを書き換えることができません。 (私はURLの変更がSPAアプリケーションの共通の動作ではないことを知っています。) – user3468795

関連する問題