Instalación de React Navigation versión 5 en React Native con Expo
Resumen
Crear un eficiente sistema de navegación en React Native es fundamental para ofrecer a los usuarios una experiencia fluida e intuitiva al desplazarse por distintas pantallas o screens. React Navigation es una biblioteca que permite configurar fácilmente diferentes tipos de navegación, como navegación tipo pestaña (tab navigation) y navegación lateral mediante menús tipo drawer navigation. Con un sencillo procedimiento de instalación y configuración, esta clase muestra cómo integrar estos elementos en una aplicación.
¿Qué es React Navigation y cómo funciona?
React Navigation es una biblioteca clave en React Native que facilita la implementación de distintos métodos de navegación entre pantallas. Gracias a esta herramienta, se pueden crear múltiples páginas o screens y desplazarse cómodamente entre ellas. Las principales modalidades de navegación contempladas son:
Tab Navigation: permite situar un menú en la parte inferior para cambiar rápidamente entre pantallas.
Drawer Navigation: un menú desplegable lateral que ofrece acceso directo a diversas secciones o pantallas.
Stack Navigation: organiza pantallas relacionadas en pilas o grupos, facilitando mantener estructuradas áreas del proyecto como sesiones o cuentas de usuario.
¿Cómo instalar correctamente React Navigation en React Native con Expo?
La instalación y configuración inicial de React Navigation versión 5, especialmente indicada para evitar inconvenientes en proyectos que no utilizan TypeScript, es bastante sencilla. Los pasos clave resumidos son:
Ir a la página oficial navigation.org, seleccionar la versión 5.x y acceder a Get Started.
Instalar los paquetes básicos mediante Expo, copiando el comando provisto por la documentación:
Para sacar el máximo provecho a Reactive Navigation, es necesario instalar paquetes específicos para cada tipo de navegación:
Stack Navigation: Maneja la navegación a través de apilado o pilas de pantallas relacionadas.
yarnadd @react-navigation/stack
Tab Navigation: Gestiona la navegación por pestañas situadas generalmente en la parte inferior de la aplicación.
yarnadd @react-navigation/bottom-tabs
Drawer Navigation: Para habilitar un menú desplegable lateral.
yarnadd @react-navigation/drawer
Estas instalaciones proporcionan las funcionalidades necesarias para cada tipo específico de navegación en aplicaciones React Native.
¿Cómo terminar la configuración inicial para usar navegación?
Resulta indispensable envolver la aplicación completa con el NavigationContainer. Este elemento permite que toda la aplicación acceda plenamente a los métodos, propiedades y hooks proporcionados por React Navigation. El procedimiento consiste en:
exportdefaultfunctionApp(){return(<NavigationContainer>{/* Tu aplicación va aquí */}</NavigationContainer>);}
Este paso permite que React Navigation tome control sobre la navegación de la aplicación desde el primer renderizado.
Después de realizar todas las instalaciones y configuraciones mencionadas, se recomienda verificar que la aplicación corra sin errores ejecutando el servidor con:
expo start
Presiona la tecla correspondiente para comprobar en los emuladores de iOS y Android.
¿Has probado ya integrar React Navigation? ¿Hay algún detalle que te gustaría profundizar? ¡Comparte tu experiencia o dudas en los comentarios!
Para los que les sale error al importar, ya no es necesario, aahora deben importar solo el navigationContainer
import{NavigationContainer}from'@react-navigation/native';exportdefaultfunctionApp(){return(<NavigationContainer>{/* Rest of your app code */}</NavigationContainer>);}
Muchas gracias por tu aporte, fue de mucha utilidad!
import{StyleSheet,Text,View}from"react-native";import{NavigationContainer}from"@react-navigation/native";import'react-native-gesture-handler';exportdefaultfunctionApp(){return(<NavigationContainer><Viewstyle={styles.container}><Text>Que chimba esto mka</Text></View></NavigationContainer>);}
Gracias, saludos desde Medallo parcero.
gracias por este aporte parce
windows 10
React Navigation v6
instalamos
npm install @react-navigation/native
si estamos utilizando expo
expo install react-native-screens react-native-safe-area-context
Vamos a hello react-navigation
npm install @react-navigation/native-stack
Agosto 2022. Gracias a estos pasos pude completar la instalación. Ya que entre el video y la guía hay diferencias y me iba trabando. Solo una cosa mas, en el paso 5 el link de la pagina no te lleva a donde están los comandos, y puede llevar a confusión de si uno esta yendo bien.
Los comandos están en https://reactnavigation.org/docs/drawer-navigator/#installation
Y como paso 7 volver a Getting Started y copiar el
import { NavigationContainer } from '@react-navigation/native';
a nuestra app.js. Y luego encerrar el View entre NavigationContainer.
muchas gracias 🥳
😁 Al parecer React navigation ya no requiere de importar
import'react-native-gesture-handler';
Es importante saberlo, gracias.
Parece ser que lo correcto es agregar la linea .En la pagina de React Navigation colocan esta nota:
Note:If you are building forAndroid or iOS,do not skip this step, or your app may crash in production even if it works fine in development.This is not applicable to other platforms.
Para los que esten siguiendo el curso en la actualidad hay que agregar una linea en el archivo de babel
plugins: ['react-native-reanimated/plugin'],
saludos,
Muchas gracias!
esto es la real guia chicos, estuve dando vueltas en la documentación y no aparece.
Team, buenas noches.
Si en tu proyecto ya tienes instalado:
import{Stack}from'expo-router';
Ya no es necesario usar React Navigation, de hecho de te mandará un error como "No puedes poner un NavitationContainer dentro de otro" (pero en inglés).
En mi caso, el 25 de mayo de 2025, expo router ya instalado nativamente en una nueva app con react native con expo, así que no es necesario react navigation.
This is documentation for React Navigation 5.x, which is no longer actively maintained.
For up-to-date documentation, see the latest version (6.x).
Mejor es instalarse la ultima versión
Muchas gracias por la info, lastima que haya sido demasiado tarde jajajaj.
Actualmente ya viene integrado navigation. Ojalá actualizaran este curso, hay muchas cosas desactualizadas
Team, buenas noches.import { Stack } from 'expo-router';
Si en tu proyecto ya tienes instalado:
import{Stack}from'expo-router';```Ya no es necesario usar ReactNavigation, de hecho de te mandará un error como "No puedes poner un NavitationContainer dentro de otro"(pero en inglés).En mi caso, el 25 de mayo de 2025, expo router ya instalado nativamente en una nueva app con react native con expo,así que no es necesario react navigation.
Buenas! Para todos/as los que estén intentando levantar react navigation intenten instalando todo desde la version 6 (la mas actual) sino van a tener conflictos. Quedaron viejas algunas sugerencias del curso, guíense por la documentación de la web https://reactnavigation.org.
(Les digo yo que hice todo lo de los videos y no me funcionaba, y tuve que desinstalar para volver a instalar todo bien y no volverme loca haciendolo funcionar)
(fecha 3/02/2023)
gracias Gianella, todo esta muy diferente
Team, buenas noches.
Si en tu proyecto ya tienes instalado:
```import { Stack } from 'expo-router';```
Ya no es necesario usar React Navigation, de hecho de te mandará un error como "No puedes poner un NavitationContainer dentro de otro" (pero en inglés).
En mi caso, el 25 de mayo de 2025, expo router ya instalado nativamente en una nueva app con react native con expo, así que no es necesario react navigation.
Nosotros compramos un articulo...trae manual y lo armamos y ponemos a funcionar el articulo sin leer dicho manual..jejeje...aca pasa igual...les recomiendo leer la documentacion oficial para cada tecnologia que vayan aprendiendo.
Como lo dijo @Carlos Galván adicionar en Mac a babel.config.js dentro de return plugins: ['react-native-reanimated/plugin'],
instalen todo con sudo para evitar errores en Mac
Muy buen curso, muy interesante, 😎
Como hago con la version 7 que es demasiado distintas
Actualicen el cursoo, hay demasiadas partes que están desactualizadas.
porque se deberia usar react navigation y no react router? pregunto yo como ignenuo que vengo de react web
Aunque parece React no es lo mismo que React Native, y creo que son scopes muy muy diferentes por eso la diferencia