#javascript #reactjs #react-router #browser-history
#javascript #reactjs #react-маршрутизатор #история браузера
Вопрос:
Я хочу, чтобы окно предупреждения отображалось до того, как пользователь покинет определенный URL
componentWillReceiveProps() {
const routeChangeListener = browserHistory.listenBefore(location => {
console.log(location);
routeChangeListener();
return 'Are you sure you want to leave the page without saving?';
});
}
Это работает, но проблема в том
- Окно предупреждения все еще срабатывает после того, как я покидаю маршрут.
- Если я скажу «нет», я не хочу отменять из окна предупреждения, оно не сработает снова, если я попытаюсь покинуть маршрут.
Я не могу отменить запуск маршрута, когда я ухожу, и я не могу инициировать диалоговое окно, если я говорю, что хочу отменить диалоговое окно, и я думаю, это может быть потому, что я вызываю routeChangeListener после componentWillMount . В конечном итоге я хочу запустить здесь модальное окно вместо использования этого окна предупреждения.
Чего мне не хватает для отмены / предотвращения routeChangeListener после запуска диалогового окна?
Комментарии:
1. Где находится окно предупреждения в вашем коде? Я не вижу его в списке
2. @winhowes возвращает «Вы уверены, что хотите оставить страницу без сохранения?»; запускает диалоговое окно предупреждения Windows
3. Если вместо этого у вас есть предупреждение, дает ли это вам результат, который вы ищете?
4. @winhowes Я планирую добавить свой собственный модальный, но на данный момент текущий код не работает должным образом, поэтому я планирую добавить его после того, как он заработает. Надеюсь, это имеет смысл