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

141
Views
¿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
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!