Permítanme comenzar diciendo que acabo de comenzar a aprender React Native y, por eso, intentaré ser lo más explícito posible.
function HomeScreen(props) { const [userName, onChangeUserNameText] = React.useState(null); const [password, onChangePasswordText] = React.useState(null); ... return ( <TextInput ... onChangeText={onChangeUserNameText} value={userName} /> <TextInput ... onChangeText={onChangePasswordText} value={password} /> <Button ... onPress={SignIn(userName, password)} /> )el método SignIn (...) se exporta desde otro archivo al que llamé home.service que debería manejar la comunicación entre mi pantalla de inicio y las llamadas API, también puse algunos registros en esa función.
por alguna razón, cada vez que cargo la aplicación o actualizo cualquiera de mis entradas, la función que debe ejecutarse cuando presiono el botón de inicio de sesión se ejecuta
en carga
en Cambiar texto
que me estoy perdiendo aqui ?
Gracias @Robin Zigmond, el problema fue, como dijo este hombre, en la forma en que llamé a mis funciones en el evento onPress:
<Button ... onPress={() => SignIn(userName, password)} />Debe agregar una devolución de llamada; de lo contrario, SignIn seguirá ejecutándose:
function HomeScreen(props) { const [userName, onChangeUserNameText] = React.useState(null); const [password, onChangePasswordText] = React.useState(null); ... return ( <TextInput ... onChangeText={onChangeUserNameText} value={userName} /> <TextInput ... onChangeText={onChangePasswordText} value={password} /> <Button ... onPress={() => SignIn(userName, password)} /> ) }