Choosing a React Navigation Navigator: Stack, Tabs, or Drawer
Match your navigator to your app's information architecture: stack for hierarchical flows, bottom tabs for three to five top-level sections, and drawer for secondary screens.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Match your navigator to your app's information architecture: stack for hierarchical flows, bottom tabs for three to five top-level sections, and drawer for secondary screens.
Protect React Navigation screens by conditionally rendering Login or Home and re-validating tokens on focus with useFocusEffect.
Compare Expo Router's file-based routing against React Navigation's component-based approach to decide which architecture fits your Expo project's scale and deep-linking needs.
React Navigation keeps screens mounted after you navigate away, so useEffect fires only once. useFocusEffect scopes side effects to focus events—if you memoize the callback and clean up properly.
Stop deep links from creating dead-end screens. Learn how to use nested linking configurations in React Navigation to automatically reconstruct the back stack.
Move React Navigation route and parameter mistakes from runtime to compile time with a TypeScript ParamList.
Define typed navigation params, set global header screenOptions, and override headers per screen in React Navigation for React Native.
React Navigation keeps screens mounted after you leave them, so a plain useEffect with an empty dependency array never fires again. useFocusEffect runs side effects on every focus, but only if you wrap the callback in useCallback.
When React Navigation v6 resets to the root screen on restart, the persistence layer is likely misconfigured. This guide walks through common causes, a step‑by‑step diagnostic checklist, targeted fixes, and escalation paths to help you restore navigation state reliably.