Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

229
Vistas
No se pueden almacenar parámetros de ruta en useState (navegación nativa de reacción)

Estoy tratando de implementar este patrón de navegación cuando haces clic en un botón y luego te lleva a un nuevo conjunto de pantallas y luego vuelve justo al principio, algo como esto:

parentScreen => child 1 => child 2 => parentScreen (otra vez).

Sin embargo, tengo problemas para almacenar parámetros de ruta provenientes de "niño 2" en "parentScreen" usando el objeto de ruta de navegación nativa de reacción

aquí está el código de parentScreen:

 useEffect(() => { axios .get(`${baseUrl}/utilities/Entretien?id=1`) .then((response) => { setDataFromAPI(response.data) }) .catch((error) => { console.log(error) }) }, []) // storing route.params.params inside recap state //route.params example: /* Object { "merge": true, "name": "child 2", "params": Object { "id": 20, "name": "create", "parent": "wheel", }, } */ useEffect(() => { console.log('this is route: ', route.params) const newRecap = route.params?.params if (route.params?.params !== undefined) setRecap((prev) => [...prev, newRecap]) console.log('recap', recap) }, [route.params])

así es como se pasan los parámetros a la pantalla principal

 let { id, baseUrl, parent } = route.params const [selectedId, setSelectedId] = React.useState(null) const [dataFromAPI, setDataFromAPI] = React.useState([]) React.useEffect(() => { axios .get(`${baseUrl}/utilities/Entretien?id=${id}`) .then((response) => { setDataFromAPI(response.data) }) .catch((error) => { console.log(error) }) }, []) const renderItem = ({ item }) => { return ( <Item item={item} onPress={() => { navigation.navigate({ name: 'Entretien', params: { id: item.id, name: item.value, parent, }, merge: true, }) }} /> ) } return ( <View> <FlatList data={dataFromAPI} renderItem={renderItem} keyExtractor={(item) => item.id} extraData={selectedId} /> </View> )

el problema es que cuando registro el estado de resumen, obtengo una matriz vacía incluso después de navegar por las pantallas secundarias, es hasta que vuelvo a renderizar (guardo el archivo una vez más) que el estado de resumen coincide con route.params, y si vuelvo a -renderizar de nuevo, la matriz de recapitulación contendrá dos de los objetos route.params.

¿Alguna idea sobre cómo puedo solucionar esto? Gracias (para cualquier explicación, deja un comentario 😁) (react 17.0.2, react-navigation 6, expo 45, react-native 0.68.2)

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda