Bird
Raised Fist0
React Nativemobile~5 mins

React Navigation installation in React Native

Choose your learning style10 modes available
Introduction

React Navigation helps you move between different screens in your app easily. Installing it sets up the tools you need to create smooth navigation.

You want to switch between a home screen and a settings screen.
You need a menu to jump to different parts of your app.
You want to go back to the previous screen with a button.
You want to organize your app into tabs or stacks.
You want to add animations when moving between screens.
Syntax
React Native
npm install @react-navigation/native
npm install react-native-screens react-native-safe-area-context
npm install @react-navigation/native-stack

# For Expo managed projects
expo install react-native-screens react-native-safe-area-context

# For bare React Native projects
npm install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-masked-view/masked-view

# Then run pod install in ios folder if using iOS
cd ios && pod install

Use npm install or expo install depending on your project type.

After installing, you may need to restart your development server.

Examples
This installs the core React Navigation library.
React Native
npm install @react-navigation/native
These libraries improve performance and handle safe areas on devices.
React Native
npm install react-native-screens react-native-safe-area-context
This installs the stack navigator for screen transitions.
React Native
npm install @react-navigation/native-stack
For iOS projects, this links native code after installing packages.
React Native
cd ios && pod install
Sample App

This simple app shows two screens: Home and Details. You can press a button on Home to go to Details. This works after installing React Navigation and its dependencies.

React Native
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { Text, View, Button } from 'react-native';

function HomeScreen({ navigation }) {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Home Screen</Text>
      <Button
        title="Go to Details"
        onPress={() => navigation.navigate('Details')}
      />
    </View>
  );
}

function DetailsScreen() {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Details Screen</Text>
    </View>
  );
}

const Stack = createNativeStackNavigator();

export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator initialRouteName="Home">
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen name="Details" component={DetailsScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}
OutputSuccess
Important Notes

Always install all required dependencies for React Navigation to work properly.

For iOS, remember to run pod install inside the ios folder after installing packages.

Restart your development server after installation to avoid errors.

Summary

React Navigation lets you move between screens in your app.

Install the core library and required dependencies using npm or expo.

For iOS, run pod install after installing packages.

Practice

(1/5)
1.

What is the main purpose of React Navigation in a React Native app?

easy
A. To style components with CSS
B. To manage app state globally
C. To move between different screens in the app
D. To fetch data from the internet

Solution

  1. Step 1: Understand React Navigation's role

    React Navigation is designed to help users switch between different screens or pages in a React Native app.
  2. Step 2: Compare with other options

    Styling is done with stylesheets, state management uses other libraries, and data fetching is separate from navigation.
  3. Final Answer:

    To move between different screens in the app -> Option C
  4. Quick Check:

    Navigation = Moving between screens [OK]
Hint: React Navigation controls screen changes [OK]
Common Mistakes:
  • Confusing navigation with styling
  • Mixing navigation with state management
  • Thinking it fetches data
2.

Which command correctly installs the core React Navigation library using npm?

?
easy
A. npm install @react-navigation/native
B. npm install react-navigation
C. npm install navigation-react
D. npm install @react-navigation/core

Solution

  1. Step 1: Identify the official package name

    The official core package for React Navigation is '@react-navigation/native'.
  2. Step 2: Check other options

    'react-navigation' is outdated, 'navigation-react' and '@react-navigation/core' are incorrect package names.
  3. Final Answer:

    npm install @react-navigation/native -> Option A
  4. Quick Check:

    Core package = @react-navigation/native [OK]
Hint: Core package always starts with @react-navigation/native [OK]
Common Mistakes:
  • Using outdated package names
  • Misspelling package names
  • Installing wrong packages
3.

After installing React Navigation core, you run npm install react-native-screens react-native-safe-area-context. What is the expected result?

medium
A. The app will lose navigation functionality
B. The app will crash immediately on start
C. These packages are unrelated and cause no effect
D. The app will have improved screen performance and safe area handling

Solution

  1. Step 1: Understand the purpose of the packages

    'react-native-screens' improves screen rendering performance, and 'react-native-safe-area-context' manages safe areas on devices.
  2. Step 2: Predict the effect on the app

    Installing these packages enhances navigation experience by improving performance and layout safety.
  3. Final Answer:

    The app will have improved screen performance and safe area handling -> Option D
  4. Quick Check:

    Supporting packages improve navigation quality [OK]
Hint: Supporting packages enhance navigation, not break it [OK]
Common Mistakes:
  • Thinking these packages cause crashes
  • Assuming no effect
  • Confusing with unrelated packages
4.

You installed React Navigation and dependencies on iOS but forgot to run pod install. What issue will most likely occur?

medium
A. The app will work perfectly without any issues
B. The app will fail to build or crash due to missing native modules
C. The app will show navigation but with wrong colors
D. The app will only crash on Android devices

Solution

  1. Step 1: Understand the role of pod install

    On iOS, pod install links native dependencies required by React Navigation.
  2. Step 2: Predict the consequence of skipping it

    Without running pod install, native modules are missing, causing build failures or runtime crashes on iOS.
  3. Final Answer:

    The app will fail to build or crash due to missing native modules -> Option B
  4. Quick Check:

    Missing pod install = build failure [OK]
Hint: Always run pod install on iOS after npm installs [OK]
Common Mistakes:
  • Skipping pod install on iOS
  • Assuming Android needs pod install
  • Ignoring build errors
5.

You want to install React Navigation in a new Expo project. Which sequence of commands is correct?

?
hard
A. expo install @react-navigation/native react-native-screens react-native-safe-area-context
B. npm install react-navigation && pod install
C. expo install react-navigation && npm install react-native-safe-area-context
D. npm install @react-navigation/native && npm install react-native-screens

Solution

  1. Step 1: Identify Expo-specific installation

    Expo recommends using expo install to install compatible versions of React Navigation and dependencies.
  2. Step 2: Check the correct packages

    The core package is '@react-navigation/native' plus 'react-native-screens' and 'react-native-safe-area-context' for performance and layout.
  3. Step 3: Verify other options

    Options B and C use outdated or incomplete commands; D uses npm but misses safe-area-context and pod install is not needed in Expo.
  4. Final Answer:

    expo install @react-navigation/native react-native-screens react-native-safe-area-context -> Option A
  5. Quick Check:

    Expo uses expo install with core packages [OK]
Hint: Use expo install for React Navigation in Expo projects [OK]
Common Mistakes:
  • Using npm instead of expo install in Expo
  • Missing dependencies
  • Running pod install in Expo projects
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard