Lo usamos para navegar entre paginas
Puede recibir dos parametros, el primero el Screen donde queremos ir y el otro los
Parametros que le queremos pasar en un objeto de configuracion que es route.params.
navigation.navigate('Pokemon',{id: pokemon.id});
Buen resumen de la clase, gracias.
Podríamos utilizar JSON para pasar el objeto y evitar otra llamada de API pero no se si lo recomiendan para este caso. Por ejemplo:
Si lo datos que necesita son exactamente los mismos no veo por que no, pero seguramente en la pagina de detalles va a querer mostrar mas información del pokemon que la disponible en la lista por lo que tendrá que hacer una llamada a la API en ese caso
Pienso que seria bueno realizarlo, pero como dice el compañero Jaime, se puede necesitar mas informacion del pokemon.
Si hay alguien aqui usando typescript, es necesario indicar los tipos correctos para que no aparezcan errores en el editor:
Primero indicamos los tipos para los parámetros de nuestras pantalla principales en nuestra navegación (en este caso de stack):
// src/navigation/Pokedexnavigation.tsximportReactfrom'react';import{ createNativeStackNavigator }from'@react-navigation/native-stack';importPokedexfrom'../screens/Pokedex';importPokemonfrom'../screens/Pokemon';// tipando los parametros de cada pantalla principalexporttypePokedexStackParamList={Pokedex:undefined;Pokemon:{ id:string;};};// podemos mandar este tipado a la funcion createStackNavigator (buena practica)constStack=createNativeStackNavigator<PokedexStackParamList>();exportdefaultfunctionPokedexNavigation(){return(...);}
Luego obtenemos el tipado para el useNavigation, usando el tipado de antes y el genérico NativeStackNavigationProp:
Muchas gracias por tu aporte !!! Justo me faltaba el paquete de @react-navigation/native-stack y ya con eso pude arreglar el resto de errores de Typescript :D
para evitar hacer un nuevo fetch de la informacion del pokemon no se podria convertir el objeto en un string (stringify) para que lo soporte el navigate y luego en la pantalla de pokemon hacer el parse? asi no se evitaria el llamado extra, aunque la verdad no se que seria mas eficiente...
¿Están perdidos algunos videos?
Hay varios que no encuentro y se dificulta comprender algo con la información incompleta :/
A la fecha que estoy escribiendo esto. Noviembre 2023 le pase todo el objeto y no hubo problema pasando todo el objeto pokemon. Estoy usando la version 6
Se me genera este error
Te sugiero revisar el curso #4 ahi se crea el stack de navegación, quizá te ayude a resolver el error.
Tenía el mismo problema, solo verifica que en el PokedexNavigation,js tengas agregado el stack para Pokemon:
Si utilizas react-query y configuras el caché, aún haciendo la petición http se usará la cache y no se hará la peticion de no ser necesario.
Bueno en caso tal de que solo se pueda mandar texto plano en el navigate, creo que algo que se podemos hacer es enviar el objeto como un string (JSON.stringify) y luego parsearlo (JSON.parse)