Как новичку понять stack, tabs, params и protected routes в React Native без превращения приложения в лабиринт.
Картридж статьи
Навигация в React Native приложении: как не запутаться в экранах
Обсудить разработку MVP
Мы можем разработать MVP на React Native: iOS + Android от 300 000 ₽, срок от 2 недель.
Навигация в React Native — это не просто переходы между экранами. Это карта пользовательского пути: вход, tabs, детали, редактирование, возврат и protected routes.
Ошибка новичка — передавать большие объекты через params и не понимать, где живёт auth state.
// Передавайте id, а не весь объект
navigation.navigate("ProductDetails", { productId: product.id });
Попробуй объяснить решение без подсказки: какие данные входят, какие состояния возможны, что увидит пользователь при ошибке и как проверить результат. Если ответ получается только “я скопировал код”, тему лучше закрепить ещё одной маленькой задачей.
Сделай маленькую версию темы без большого проекта. Один экран, один сценарий, один критерий готовности. Например: форма с валидацией, список с пустым состоянием, экран с API-загрузкой или карточка компонента с длинным текстом.
Порядок простой:
Тема стала практической, если ты можешь изменить условие задачи без полного переписывания. Например, заменить API response, добавить ещё одно поле формы, поменять текст ошибки или переиспользовать компонент на другом экране. Если любое изменение ломает всё, лучше сделать ещё один маленький проход.
Для этой темы полезно не только собрать рабочий happy path, но и специально сломать сценарий. Передай пустой массив, неверный параметр, слишком длинный текст или ошибку сети. Если приложение показывает понятное состояние, значит решение стало крепче.
Такой подход быстро меняет мышление: ты перестаёшь писать код только для демо и начинаешь думать как человек, который отдаёт экран реальному пользователю.
Эту тему лучше закреплять практикой: пройти урок, решить короткое задание, проверить себя в игре или арене и записать, что именно стало понятнее.
Если навигация случайная, приложение ощущается сломанным даже при хорошем UI.