Sahoo traces navigation from iOS-only NavigatorIOS through JavaScript libraries such as Navigator and NavigationExperimental, then native options from Wix and Airbnb. He explains how React Navigation 5 replaced the static API with a dynamic, component-based one, and React Navigation 6 keeps that core API while refining it.
React Navigation 6.x, fresh from the oven
Speaker
Satyajit Sahoo, maintainer of React Navigation at Callstack, presents React Navigation 6 at React Native EU 2021.
React Navigation 6 lets developers set navigator defaults with `screenOptions` and override them for individual screens, enabling changes such as a different tab bar style on the Albums screen. Sahoo also describes React Navigation Elements and quality-of-life improvements, including simpler modal presentation, custom headers, transparent modals, and backgrounds for bottom tabs.
Sahoo says deeply nested navigators can complicate TypeScript, navigation calls, performance, and memory use. React Navigation 6 lets one stack mix regular and modal screens, adds `Group` for shared screen options without rendering another navigator, and provides headers by default in drawers and bottom tabs.
For new apps, React Navigation 6 sets up the native stack by default, while keeping the JavaScript stack available for greater customization. Sahoo also covers improved TypeScript checking for `useNavigation` and a custom Flipper plugin that displays navigation and deep link information; the plugin does not work with Expo.
Sahoo points developers to the upgrade guide for required breaking changes, deprecations, and caveats when mixing React Navigation 5 and 6 packages. He also invites the community to contribute documentation, answer questions, triage issues, review pull requests, join GitHub Discussions, and sponsor the project.
Takeaways
- Use `screenOptions` for shared defaults and screen-level `options` for exceptions.
- Choose the native stack for new apps when its customization meets your needs.
- Consider a single stack with modal presentation options before nesting navigators.
- Define the root navigation type to enable default `useNavigation` autocomplete and checks.
- Follow the upgrade guide before migrating, especially when mixing package versions.
Mentioned in this talk
CallstackSearch inside this talk
What was claimed 12
- role atSatyajit Sahoo is lead maintainer at React Navigation
“Michał and I work on React Navigation”
0:05inComponent First Navigation In React NativeYouTube Verified3 sources· Talk
- built
“It was built by Eric Vicenti at Facebook.”
YouTube Unverified1 source· Talk
- builtReact Native Navigation built
Wix
“a new navigation library from Wix was born, called React Native Navigation.”
YouTube Unverified1 source· Talk
- uses
“React Navigation uses React Native Screens.”
4:16inNative Navigation in JavaScript WorldYouTube Verified3 sources· Talk
- builtExNavigation built Brent Vatne
“mainly built by Brent Vatne and other contributors.”
YouTube Unverified1 source· Talk
- builtExNavigation built Expo
“a kind of continuation of NavigationExperimental by Expo”
YouTube Unverified1 source· Talk
- builtNative Navigation built
Airbnb
“The next big navigation library was Airbnb's Native Navigation.”
YouTube Verified2 sources· Talk
- featureNative Navigation: Designed to make integration with brownfield apps easier.
“It was built around brownfield apps to make integration with them easier.”
YouTube Unverified1 source· Talk
- featureReact Navigation: Version 6 supports per-screen options and Group configuration to reduce unnecessary navigator nesting.
“You can also specify them in the screen's options prop.”
YouTube Unverified1 source· Talk
- featureReact Navigation: Version 6 promotes native stack by default for new apps.
“In React Navigation 6, we now promote the use of native stack by default.”
YouTube Unverified1 source· Talk
- featureReact Navigation: Version 6 provides typed useNavigation by default when the app defines its root navigation type.
“In React Navigation 6, you don't need to annotate useNavigation to get autocomplete and type checking; it's typed by default.”
YouTube Unverified1 source· Talk
- integrates withReact Navigation integrates with Flippercustom developer tools plugin
“Now we have a Flipper plugin for React Navigation.”
YouTube Unverified1 source· Talk





