У меня есть вызов API, после того как управление вызовами API перейдет на другой экран. Проблема в том, что метод выполняется сам по себе даже до того, как у пользователя есть шанс вызвать метод. Я хочу, чтобы пользователь дал ввод и затем вызвал api, чтобы проверить правильность ввода, а затем перейти к другому экрану.
Это мой код API
const PinCode = dispatch => async ({vCode}) => {
console.log('entro');
try {
const vSolicitudeId = await AsyncStorage.getItem('SolicitudeId');
const response = await ForceApi.post('/ValidateCodeController.php', {vSolicitudeId,vCode});
dispatch({ type: 'guardar', payload: response.data.id});
console.log(response.data.message);
console.log(response.data.code);
navigate('Calculadora',);
} catch (err) {
console.log(err);
dispatch({
type: 'add_error',
payload: 'Error de Conexion'
});
}
};
и вот как это называется
const {state, PinCode} = useContext(Context);
const [vCode, setvCode] = useState('');
useEffect(() => {
PinCode({vCode});
}, []);
return (
<View style={styles.container}>
<View>
<Text style={styles.textIniciar}>Verificación de PIN</Text>
</View>
<View>
<Text style={styles.Pin}>Ingresa el código que hemos enviado al número registrado.</Text>
</View>
<View style={styles.inputContainer}>
<TextInput style={styles.inputs}
placeholder="Código"
underlineColorAndroid='transparent'
onChangeText={newvCode => setvCode(newvCode)}
value={vCode}
autoCorrect={false}
autoCapitalize='characters'
/>
</View>
<TouchableOpacity style={[styles.buttonContainer, styles.loginButton]}
onPress={() => PinCode({vCode})}>
<Text style={styles.loginText}>ENVIAR</Text>
</TouchableOpacity>
<View>
<Text style={styles.Pin}>¿No se ha recibido el código de verificación?</Text>
<Text style={styles.Pin}>Reenviar</Text>
</View>
</View>
);
};
любая помощь будет оценена