Подтверждение перехода
Last updated
Last updated
ОБНОВЛЕНИЕ 2018: в учебнике хорошая теория, но ему уже два года. Проверяйте версии пакетов. За выходом нового учебника можно следить в telegram канале или twitter
На канале так же проводятся бесплатные вебинары, публикуются переводы и авторские материалы, присоединяйтесь!
Страница Home/index.js - уже зарекомендовала себя в качестве страницы для "выдуманных примеров". Сделаем еще один.
Представьте ситуацию, что вам нужно спросить у пользователя подтверждение о переходе. Самый распространенный вариант - редактирование каких-то данных -> клик на ссылку -> "вы уверены что хотите перейти, все изменения будут утеряны" -> да/нет.
В нашем, упрощенном примере, мы просто покажем confirm окно, на любой переход с главной страницы.
src/components/Home/index.js
Так же, можно использовать более краткую запись в функции routerWillLeave:
Ссылка на документацию (EN)
Я надеюсь, что всем понятно: вместо стандартного confirm-окна, мы можем показать свои формочки и прочее... Главное, что мы должны вернуть false, если не хотим перехода.
Обратите внимание: если вы попробуете, находясь на главной странице, вписать адрес вручную и нажать enter - переход произойдет без вопросов.
Итого: научились предотвращать нежелательный переход по клику.
Исходный код на данный момент.