Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

241
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda