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

151
Vistas
¿Estoy manejando correctamente este route.params cuando uso un navegador anidado?

En mi aplicación, tengo un modal que se supone que aparece si la aplicación detecta que el usuario proviene de la "FinishingScreen", aparte de eso, el modal no debería aparecer.

Tengo un " Navegador de pestañas del cajón " anidado dentro de mi " Navegador de pestañas principal "

Cuando navego desde FinishingScreen a mi HomeScreen, aparece el modal porque didComeFromFinishingScreen == true

Cuando navego a cualquiera de las pantallas contenidas en el cajón, luego vuelvo a la pantalla de inicio, el modal vuelve a aparecer porque didComeFromFinishingScreen sigue siendo verdadero.

Creo que esto tiene que ver con la forma en que manejo los parámetros de la ruta.

A continuación se muestra el código que utilizo para manejar la ruta.params:

Código dentro de FinishingScreen haciendo que modal cambie inicialmente

 const checkConfirm = async () => { return await client_instance.stop_running().then( ()=>navigation.navigate('Home', { didComeFromFinishingScreen: true, }) ) } ... <TouchableOpacity onPress={checkConfirm} > <Text>Stop Running</Text> </TouchableOpacity>

Comprobando si didComeFromFinishingScreen == verdadero dentro de la pantalla de inicio

 if(route.params?.didComeFromFinishingScreen){ if(isFocused){ setModalVisible(true) } } return()=>{ console.log('cleanup function is closing modal') if(isFocused){ setModalVisible(false) } }

Ir de la pantalla de inicio a una de las pantallas dentro del cajón

 <DrawerItem icon={({color, size }) => ( <Icon name="account-outline" color={color} size={height*0.032} /> )} label= {i18n.t('prof')} onPress={()=>{navigation.navigate('ProfileStackScreen', {didComeFromFinishingScreen: false} )}} />

Navegar de regreso a la pantalla de inicio desde cualquiera de las pantallas en el cajón

 <DrawerItem icon={({color, size }) => ( <Icon name="home-outline" color={color} size={height*0.032} /> )} label= {i18n.t('home')} onPress={()=>{navigation.navigate('HomeDrawer', { didComeFromFinishingScreen: false}) }} />
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