私は各ステップに反応ルータルートを持つ多段ウィザードを持っています。ユーザーがサイトから離れようとしたときに反応ルータのDOMに警告する
現在、ユーザーが外部リンクに移動すると、すべての状態が失われます。
私はユーザに警告してキャンセルさせることができるreact-router-domまたはreact-routerにすべてのcatchがありますか?
私は各ステップに反応ルータルートを持つ多段ウィザードを持っています。ユーザーがサイトから離れようとしたときに反応ルータのDOMに警告する
現在、ユーザーが外部リンクに移動すると、すべての状態が失われます。
私はユーザに警告してキャンセルさせることができるreact-router-domまたはreact-routerにすべてのcatchがありますか?
あなたはリアクションルータのヒストリーAPIの下でブロッキングトランジションを探していると思います。ルータ履歴githubのページを反応させる上の例のように
:
あなたは、彼らが現在のページから移動する前に ユーザーに表示されます簡単なプロンプトメッセージを登録することができます。 https://github.com/ReactTraining/history#properties
で
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?"
/>
あなたはそれぞれの外部リンクにクラスを追加してもらえますか?外部リンクコンポーネントを作成することができます。 –
反応ルータdomは現在反応のライフサイクルに依存しています。もしそれがナビゲートしているのであれば、それを捕まえるのに –