Estoy tratando de enrutar a mi usuario
const tryLogin = async () => { try { await firebase.auth().onAuthStateChanged((user) => { if (user != null) { props.navigation.navigate("Page1"); } else { props.navigation.navigate("Page3"); } }); } catch { console.log("errrors"); } };Mi navegación se ve así
<NavigationContainer> <Drawer.Navigator> {userToken == null ? ( <> <Drawer.Screen name="Splash" component={SplashScreen} options={{ headerShown: false }} /> <Drawer.Screen name="Page1" component={Page1} options={{}} /> <Drawer.Screen name="Page2" component={Page2} options={{}} /> </> ) : ( <> <Drawer.Screen name="Page3" component={Page3} options={{}} /> <Drawer.Screen name="Page4" component={Page4} /> <Drawer.Screen name="Page5" component={Page5} /> <Drawer.Screen name="Page6" component={Page6} /> <Drawer.Screen name="Page7" component={Page7} /> </> )} </Drawer.Navigator> </NavigationContainer>Funciona perfectamente bien con el componente de la página 1 y 2, pero cuando trato de redirigir al componente de la página 3, aparece el siguiente error. La acción 'NAVEGAR' con la carga útil {"nombre":"Página3"} no fue manejada por ningún navegador.
Está mezclando la función asíncrona y de promesas en su código.
Debe verificar la condición de userToken de usuario también en el código que activa la acción de navigate .
Según su lógica, si el userToken de usuario existe, el componente Page3 no se representa.
Esta es la razón del error.
Intenta cambiar tu código así:
const tryLogin = async () => { try { const user = await firebase.auth().onAuthStateChanged(); if (user !== null) { props.navigation.navigate('Page1'); } else if (userToken !== null) { props.navigation.navigate('Page3'); } } catch { console.log('errrors'); } };