2017-10-01 10 views
1

私は各ステップに反応ルータルートを持つ多段ウィザードを持っています。ユーザーがサイトから離れようとしたときに反応ルータのDOMに警告する

現在、ユーザーが外部リンクに移動すると、すべての状態が失われます。

私はユーザに警告してキャンセルさせることができるreact-router-domまたはreact-routerにすべてのcatchがありますか?

+0

あなたはそれぞれの外部リンクにクラスを追加してもらえますか?外部リンクコンポーネントを作成することができます。 –

+0

反応ルータdomは現在反応のライフサイクルに依存しています。もしそれがナビゲートしているのであれば、それを捕まえるのに –

答えて

0

あなたはリアクションルータのヒストリーAPIの下でブロッキングトランジションを探していると思います。ルータ履歴githubのページを反応させる上の例のように

あなたは、彼らが現在のページから移動する前に ユーザーに表示されます簡単なプロンプトメッセージを登録することができます。 https://github.com/ReactTraining/history#properties

0

const unblock = history.block('Are you sure you want to leave this page?') 

詳細な情報は、このためのコンポーネントがあります。ここプロンプトコンポーネントをチェックアウト: https://reacttraining.com/react-router/core/api/Prompt

をここで彼らが使用する例です:あなたがクリックしたときにプロンプ​​トを起動イベントリスナーを付けることができるように

<Prompt 
    when={formIsHalfFilledOut} // <- function that returns boolean 
    message="Are you sure you want to leave?" 
/> 
関連する問題