Estoy mostrando la pantalla de inicio de reacción nativa y tratando de ocultarla en useEffect, pero useEffect no se llama si estoy usando AWS Authenticator en App.js. Funciona bien cuando no uso el autenticador.
Aplicación.js
import Amplify from 'aws-amplify'; import config from './src/aws-exports'; import { withAuthenticator } from 'aws-amplify-react-native'; import Auth from '@aws-amplify/auth'; import SplashScreen from 'react-native-splash-screen'; import { useEffect } from 'react'; function App (){ useEffect(() => { SplashScreen.hide(); }); return ( <View> </View> ); }; export default withAuthenticator(App);Funciona bien sin el Autenticador si elimino la última línea.
Necesita un cambio de estado para procesar el useEffect. Y withAuthenticator se encarga de todo el proceso de inicio de sesión. Entonces, para incluir la personalización, sugiero usar el Autenticador (que es el componente envuelto en WithAuthenticator) en su lugar. Tiene prop onStateChange que puede usar para detectar un cambio de autoridad.
Ejemplo:
<Authenticator // Fired when Authentication State changes, use it to hide/show stuff onStateChange={(authState) => console.log(authState)} > // Default components can be customized/passed in as child components. // Define them here if you used hideDefault={true} </Authenticator>