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

149
Visualizações
¿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 à 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