--- id: navigation title: Navigating Between Screens layout: docs category: Guides permalink: docs/navigation.html next: images previous: platform-specific-code --- Mobile apps are rarely made up of a single screen. Managing the presentation of, and transition between, multiple screens is typically handled by what is known as a navigator. This guide covers the various navigation components available in React Native. If you are just getting started with navigation, you will probably want to use [React Navigation](docs/navigation.html#react-navigation). React Navigation provides an easy to use navigation solution, with the ability to present common stack navigation and tabbed navigation patterns on both iOS and Android. As this is a JavaScript implementation, it provides the greatest amount of configurability as well as flexibility when integrating with state management libraries such as [redux](https://reactnavigation.org/docs/guides/redux). If you're only targeting iOS, you may want to also check out [NavigatorIOS](docs/navigation.html#navigatorios) as a way of providing a native look and feel with minimal configuration, as it provides a wrapper around the native `UINavigationController` class. This component will not work on Android, however. If you'd like to achieve a native look and feel on both iOS and Android, or you're integrating React Native into an app that already manages navigation natively, the following libraries provide native navigation on both platforms: [native-navigation](http://airbnb.io/native-navigation/), [react-native-navigation](https://github.com/wix/react-native-navigation). ## React Navigation The community solution to navigation is a standalone library that allows developers to set up the screens of an app with just a few lines of code. The first step is to install in your project: ``` npm install --save react-navigation ``` Then you can quickly create an app with a home screen and a profile screen: ``` import { StackNavigator, } from 'react-navigation'; const App = StackNavigator({ Home: { screen: HomeScreen }, Profile: { screen: ProfileScreen }, }); ``` Each screen component can set navigation options such as the header title. It can use action creators on the `navigation` prop to link to other screens: ``` class HomeScreen extends React.Component { static navigationOptions = { title: 'Welcome', }; render() { const { navigate } = this.props.navigation; return (