React Navigation es una biblioteca de navegación popular para aplicaciones React Native. Proporciona una forma fácil y flexible de manejar la navegación en tu aplicación, permitiéndote crear navegadores de pila, pestañas, cajones y más. En esta lección, aprenderás los conceptos básicos de React Navigation y cómo configurarlo en tu proyecto.
- ¿Qué es React Navigation?
React Navigation es una biblioteca que permite a los desarrolladores de React Native implementar la navegación en sus aplicaciones de manera sencilla y eficiente. Ofrece una variedad de navegadores y opciones de configuración para adaptarse a diferentes necesidades de navegación.
Características Clave:
- Navegación de Pila (Stack Navigation): Permite apilar pantallas una sobre otra, similar a la navegación en un navegador web.
- Navegación de Pestañas (Tab Navigation): Proporciona una barra de pestañas en la parte inferior o superior de la pantalla para cambiar entre diferentes vistas.
- Navegación de Cajón (Drawer Navigation): Ofrece un menú deslizante desde el borde de la pantalla, comúnmente utilizado para la navegación principal.
- Personalización y Tematización: Permite personalizar la apariencia y el comportamiento de los navegadores.
- Instalación de React Navigation
Para comenzar a usar React Navigation, primero necesitas instalar las dependencias necesarias en tu proyecto de React Native.
Paso 1: Instalar React Navigation
Paso 2: Instalar las Dependencias Requeridas
React Navigation depende de algunas bibliotecas adicionales para funcionar correctamente. Instálalas con el siguiente comando:
Paso 3: Instalar los Navegadores
Dependiendo del tipo de navegación que desees implementar, necesitarás instalar navegadores específicos. Para este ejemplo, instalaremos el navegador de pila:
Paso 4: Configurar React Navigation
En tu archivo App.js, configura React Navigation de la siguiente manera:
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import HomeScreen from './screens/HomeScreen';
import DetailsScreen from './screens/DetailsScreen';
const Stack = createStackNavigator();
function App() {
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="Home">
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Details" component={DetailsScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
export default App;Explicación del Código:
- NavigationContainer: Es un contenedor que gestiona el estado de la navegación y debe envolver toda la estructura de navegación.
- createStackNavigator: Crea un navegador de pila.
- Stack.Navigator: Define el navegador de pila y sus pantallas.
- Stack.Screen: Define cada pantalla en el navegador de pila.
- Creación de Pantallas
Para completar el ejemplo, crea dos pantallas simples: HomeScreen y DetailsScreen.
HomeScreen.js
import React from 'react';
import { View, Text, Button } from 'react-native';
function HomeScreen({ navigation }) {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Home Screen</Text>
<Button
title="Go to Details"
onPress={() => navigation.navigate('Details')}
/>
</View>
);
}
export default HomeScreen;DetailsScreen.js
import React from 'react';
import { View, Text } from 'react-native';
function DetailsScreen() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Details Screen</Text>
</View>
);
}
export default DetailsScreen;Explicación del Código:
- HomeScreen: Contiene un botón que, al ser presionado, navega a la pantalla de detalles usando
navigation.navigate('Details'). - DetailsScreen: Muestra un simple texto "Details Screen".
- Ejercicio Práctico
Ejercicio:
- Crea una nueva pantalla llamada
ProfileScreen. - Añade un botón en
HomeScreenque navegue aProfileScreen. - Configura
ProfileScreenen el navegador de pila.
Solución:
ProfileScreen.js
import React from 'react';
import { View, Text } from 'react-native';
function ProfileScreen() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Profile Screen</Text>
</View>
);
}
export default ProfileScreen;Modificación en HomeScreen.js
import React from 'react';
import { View, Text, Button } from 'react-native';
function HomeScreen({ navigation }) {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Home Screen</Text>
<Button
title="Go to Details"
onPress={() => navigation.navigate('Details')}
/>
<Button
title="Go to Profile"
onPress={() => navigation.navigate('Profile')}
/>
</View>
);
}
export default HomeScreen;Modificación en App.js
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import HomeScreen from './screens/HomeScreen';
import DetailsScreen from './screens/DetailsScreen';
import ProfileScreen from './screens/ProfileScreen';
const Stack = createStackNavigator();
function App() {
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="Home">
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Details" component={DetailsScreen} />
<Stack.Screen name="Profile" component={ProfileScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
export default App;
- Conclusión
En esta lección, has aprendido los conceptos básicos de React Navigation y cómo configurarlo en tu proyecto de React Native. Ahora puedes crear navegadores de pila y añadir nuevas pantallas a tu aplicación. En las próximas lecciones, exploraremos otros tipos de navegadores y cómo personalizar la navegación en tu aplicación.
¡Sigue practicando y experimentando con React Navigation para dominar la navegación en tus aplicaciones React Native!
Curso de React Native
Módulo 1: Introducción a React Native
- ¿Qué es React Native?
- Configuración del Entorno de Desarrollo
- Aplicación Hola Mundo
- Entendiendo JSX
- Componentes y Props
Módulo 2: Componentes Básicos y Estilizado
- Visión General de Componentes Básicos
- Texto, Vista e Imagen
- Estilizado con Flexbox
- Manejo de Entrada del Usuario
- ScrollView y ListView
Módulo 3: Estado y Ciclo de Vida
- Métodos de Estado y Ciclo de Vida
- Manejo de Eventos
- Renderizado Condicional
- Listas y Claves
- Formularios y Componentes Controlados
Módulo 4: Navegación
- Introducción a React Navigation
- Navegador de Pila
- Navegador de Pestañas
- Navegador de Cajón
- Pasando Parámetros a Rutas
Módulo 5: Redes y Datos
- Obteniendo Datos con Fetch API
- Usando Axios para Solicitudes HTTP
- Manejo de Errores de Red
- AsyncStorage para Datos Locales
- Integración con APIs REST
Módulo 6: Conceptos Avanzados
Módulo 7: Despliegue y Publicación
- Construyendo para iOS
- Construyendo para Android
- Publicando en App Store
- Publicando en Google Play
- Integración y Entrega Continua
