Navegación entre pantallas y transmisión de parámetros
Utilice navigation.navigate para desplazarse entre pantallas, pase parámetros en el segundo argumento y léalos con route.params en la pantalla de destino.
Navegación entre pantallas y transmisión de parámetros es una lección gratuita de React Native Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Native Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Native Academy incluye 4 lecciones en total.
La prop navigation en las pantallas
Cada componente registrado como pantalla en un navegador de React Navigation recibe automáticamente una prop navigation. Este objeto proporciona métodos para cambiar de pantalla, volver atrás y gestionar la pila de navegación. También puede acceder a él en componentes anidados mediante el hook useNavigation.
function HomeScreen({ navigation }) {
// navigation.navigate, navigation.goBack, etc.
return <View />;
}Navegación con navigation.navigate
Llame a navigation.navigate('ScreenName') para ir a otra pantalla. Si la pantalla ya está en la pila y vuelve a navegar hacia ella, React Navigation irá a la instancia existente en lugar de añadir un duplicado. Use navigation.push('ScreenName') para insertar siempre una instancia nueva.
function HomeScreen({ navigation }) {
return (
<Button
title='Go to Details'
onPress={() => navigation.navigate('Details')}
/>
);
}Volver atrás con navigation.goBack
Llame a navigation.goBack() para extraer la pantalla actual de la pila y volver a la anterior. En iOS, el gesto de deslizar para volver está activado de forma predeterminada. En Android, el botón físico Atrás llama automáticamente a goBack. Use navigation.popToTop() para volver directamente a la primera pantalla.
function DetailsScreen({ navigation }) {
return (
<Button
title='Go Back'
onPress={() => navigation.goBack()}
/>
);
}Pasar parámetros al navegar
Pase un segundo argumento a navigation.navigate para enviar parámetros a la pantalla de destino. El objeto de parámetros puede contener cualquier dato serializable: identificadores, cadenas o valores booleanos. Evite pasar objetos complejos no serializables, como instancias de clases o funciones.
function HomeScreen({ navigation }) {
return (
<Button
title='View Post'
onPress={() =>
navigation.navigate('Details', {
postId: 42,
title: 'React Navigation Deep Dive',
})
}
/>
);
}Leer parámetros con route.params
La pantalla de destino recibe una prop route junto con la prop navigation. Acceda a los parámetros que ha pasado mediante route.params. Proporcione siempre valores predeterminados por si una pantalla se abre sin parámetros, por ejemplo, cuando es la pantalla inicial.
function DetailsScreen({ route, navigation }) {
const { postId, title } = route.params ?? {};
return (
<View>
<Text>Post ID: {postId}</Text>
<Text>Title: {title}</Text>
</View>
);
}Parámetros predeterminados en Stack.Screen
Establezca initialParams en un Stack.Screen para proporcionar valores de parámetros predeterminados. Estos valores se combinan con los parámetros pasados durante la ejecución, por lo que la pantalla siempre dispone de un conjunto completo de valores con los que trabajar, incluso cuando se abre como ruta inicial.
<Stack.Screen
name='Details'
component={DetailsScreen}
initialParams={{ postId: 0, title: 'Unknown' }}
/>Actualizar parámetros desde una pantalla
Una pantalla puede actualizar sus propios parámetros mediante navigation.setParams. Esto resulta útil cuando una acción realizada en la pantalla actual, como editar un campo de formulario, debe reflejarse en el título del encabezado de navegación. La actualización de los parámetros desencadena un nuevo renderizado de la pantalla.
function DetailsScreen({ route, navigation }) {
const { title } = route.params;
return (
<Button
title='Update Title'
onPress={() => navigation.setParams({ title: 'Updated Title' })}
/>
);
}Usar el hook useNavigation
Los componentes secundarios profundos que no están registrados como pantallas no reciben automáticamente la prop navigation. Use el hook useNavigation() de React Navigation para acceder al objeto de navegación desde cualquier lugar del árbol del navegador sin tener que pasar props por varios niveles.
import { useNavigation } from '@react-navigation/native';
function MyButton() {
const navigation = useNavigation();
return (
<Button
title='Go to Profile'
onPress={() => navigation.navigate('Profile')}
/>
);
}Usar el hook useRoute
De forma similar, use el hook useRoute() para acceder a route.params desde un componente que no sea una pantalla. Esto resulta útil cuando tiene un componente profundamente anidado que necesita leer los parámetros de la pantalla actual sin pasar la prop route por cada nivel.
import { useRoute } from '@react-navigation/native';
function PostHeader() {
const route = useRoute();
const { title } = route.params ?? {};
return <Text style={{ fontWeight: 'bold' }}>{title}</Text>;
}Establecer el título del encabezado a partir de parámetros
Puede establecer dinámicamente el título del encabezado de navegación a partir de los parámetros de la ruta pasando una función a la prop options. La función recibe el objeto route, lo que permite usar los valores de los parámetros como título de la pantalla sin necesidad de usar estado adicional.
<Stack.Screen
name='Details'
component={DetailsScreen}
options={({ route }) => ({ title: route.params.title ?? 'Details' })}
/>Volver atrás y devolver datos
Para enviar datos desde una pantalla secundaria a su pantalla principal, use navigation.navigate con el nombre de la pantalla principal e incluya los datos de retorno como parámetros. La pantalla principal recibirá los parámetros actualizados. Como alternativa, pase una función de callback como parámetro a la pantalla secundaria y llámela antes de volver atrás.
// In child screen
navigation.navigate('Home', { selectedItem: 'apple' });
// In parent screen — read route.params.selectedItemComprobación rápida
Compruebe cuánto comprende la navegación entre pantallas y los parámetros de React Navigation de esta lección.
Resumen de la lección
En esta lección aprendió: usar navigation.navigate para desplazarse a otra pantalla, pasar parámetros como segundo argumento de navigate y leer los parámetros con route.params en la pantalla de destino. A continuación, exploraremos el Bottom Tab Navigator.
Aprende JavaScript con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Navegación entre pantallas y transmisión de parámetros» es gratis?
Sí — el texto completo de «Navegación entre pantallas y transmisión de parámetros» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Native Academy, actualiza a CoddyKit PRO. El curso de React Native Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Navegación entre pantallas y transmisión de parámetros»?
Utilice navigation.navigate para desplazarse entre pantallas, pase parámetros en el segundo argumento y léalos con route.params en la pantalla de destino. Practicas React Native Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar React Native Academy?
No se requiere experiencia previa. React Native Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Navegación entre pantallas y transmisión de parámetros»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de React Native Academy?
Sí. Cada lección de React Native Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Instalación y configuración de React Navigation
- Navegación entre pantallas y transmisión de parámetros
- Navegador de pestañas inferiores
- Navegador de cajón y navegadores anidados