Screenshot of React Navigation website

Implementing Navigation in React Native with React Navigation

Mark Worachote
Mark Worachote
Solutions Engineer
Nov 15, 2023

Imagine an explorer entering a vast, uncharted ocean with nothing but a small raft. Without a system to navigate the waters, it would be easy to become hopelessly lost at sea. Luckily, we have React Navigation to chart routes through any React Native app!

React Navigation helps guide users through the fluid waters between screens. Like a trusty first mate, it manages transitions, keeps track of navigation history, and ensures users always end up in the right place. In this post, we’ll embark on an adventure to master navigation on the React Native seas.

We’ll start by installing our navigation libraries like loading a map and compass. Next we’ll create a StackNavigator to switch between screen components, the hull of our ship. We’ll wrap our navigator in a NavigationContainer which acts as the outer shell to connect navigation state to the native environment. Finally, we’ll use the navigation prop to move between screens like a captain giving orders to a crew.

By the end of our voyage, we’ll have smooth sailing through any React Native app no matter how vast. So come aboard and let’s set a course!


First, we need to install the React Navigation dependencies:

This will install:

  • <span id="greylight" class="greylight">@react-navigation/native</span> - Core navigation functions
  • <span id="greylight" class="greylight">@react-navigation/stack</span> - Stack navigator for transitions between screens

Create Stack Navigator

The Stack Navigator handles routing and allows pushing new screens on top of a stack. First, import <span id="greylight" class="greylight">createStackNavigator</span> from React Navigation:

Next, create the navigator

This will return a Stack Navigator component.

Add Screen Components

Inside the navigator, we need to define our screen components using <span id="greylight" class="greylight">Stack.Screen</span>

This maps route names to React component screens that will be rendered.

Wrap App in Navigation Container

The NavigationContainer handles linking the navigator to the native OS:

Add Navigation Prop

To navigate between screens, we use the <span id="greylight" class="greylight">navigation</span> prop passed to each screen:

Calling <span id="greylight" class="greylight">navigation.navigate</span> will transition to the named screen.

And that covers the basics of configuring React Navigation in a React Native app!

Final Thoughts

As we explored React Navigation, we uncovered the basics of routing in React Native. However, there are many other possibilities to discover! Additional types of navigators offer features like tabbed navigation, side drawer menus, and nested stacks. Customizable dynamic configuration options can change transitions and header behavior. Deep links allow for direct movement to specific screens. Integrations with authentication and state management libraries expand the potential.

Amity, a provider of ready-to-use and customizable social features, relies on React Navigation as a pivotal element in its open-source React Native UI Kit. This UI Kit furnishes companies with pre-built User Interface components for both chat and social functionalities, enabling them to significantly cut down development time and expedite the introduction of features to the market.

If you’re aiming to enhance social experiences on your platform, leading to increased app downloads, traffic, and user retention, delve into the comprehensive features that Amity offers. Should you discover that a pre-built solution aligns with your business objectives, you can kickstart the process by reaching out to Amity today!