Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

228
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!