React router v4 получает подтверждение пользователя при выходе со страницы

В более старых версиях я мог использовать setRouteLeaveHook в своем компоненте.

Например (SO): Обнаружение выхода пользователя со страницы

В React Router v4 логика изменилась, и вместо внедрения самого маршрутизатора в компоненты я нашел только следующую функцию на Router v4:

BrowserRouter. получить подтверждение пользователя

Я немного запутался, почему я должен связывать поведение подтверждения с самим маршрутизатором, а не с конкретным компонентом!?

Как я могу разместить окно подтверждения при выходе из моего компонента (связанного с моим текущим маршрутом), находясь в определенном состоянии? Кажется, это не поддерживается функцией выше.


person Jankapunkt    schedule 15.06.2017    source источник


Ответы (2)


Я думаю, что компонент Prompt — это то, что вам нужно. Просто визуализируйте его в компоненте, который вы хотите подтвердить формой навигации, то есть в том же компоненте, который вы визуализируете в своем <Route>.

person skept    schedule 22.06.2017
comment
Выглядит многообещающе, и мне интересно, почему я раньше не нашел его на тренировке реагирования. Проверит это и ответит в случае успеха/неудачи. - person Jankapunkt; 23.06.2017

react-router-navigation-prompt также делает то, что вам нужно: это более мощный <Prompt />.

person Zachary Ryan Smith    schedule 25.06.2019