React Navigation

React Navigation: The Library Expo Router Builds On

React Navigation 407,918 (https://github.com/react-navigation/react-navigation 24,507 ) (MIT) has been React Native 36,878 's standard navigation library since it replaced the old core Navigator. @react-navigation/native 7.4.1 holds the container, linking and theming, and each navigator is a package of its own; version 8 is in alpha on npm 2,036 's next tag (8.0.0-alpha.48).

Expo Router 6,418 began as a layer that generated React Navigation navigators from your files. Up to SDK 55 you could mix the two and import from @react-navigation/* inside an Expo Router app. Expo Router v56 (May 2026) forked the parts of React Navigation it depends on, so Expo 6,418 can change them for file-based routing, the web and server rendering, and expo-router no longer depends on React Navigation. The runtime API is the same, but imports move: @react-navigation/native (and /core, /elements) becomes expo-router/react-navigation, the native stack and the drawer become the router's Stack and Drawer, and the JavaScript stack and bottom tabs become expo-router/js-stack and expo-router/js-tabs. npx expo-codemod sdk-56-expo-router-react-navigation-replace src rewrites them for you. Expo CLI enforces the split: while expo-router was installed in BookNest, a demo that imported @react-navigation/native stopped Metro with:

Output of 149
Android Bundling failed 2105ms index.ts (1194 modules)
 ERROR  As of SDK 56, expo-router is no longer compatible with react-navigation. For more infor
mation, see https://docs.expo.dev/router/migrate/sdk-55-to-56/. You can disable this check by s
etting the environment variable EXPO_ROUTER_DISABLE_RN_NAVIGATION_CHECK=1.
Import stack:
 src/nav/RNStack.tsx
 | import "@react-navigation/native"

Libraries in node_modules that import @react-navigation/core are redirected to expo-router/react-navigation instead, so they keep working. The React Navigation demos that follow ran with the check disabled and index.ts as the entry, like a project without Expo Router. In a real app, pick one library.