Soy nuevo en React, lo que intento hacer es llamar a mi API con una solicitud GET para cambiar el estado de un ascensor a "Operativo" y su estado de color de rojo a verde. El problema es que no parece llamar a la API y me devuelve a mi pantalla anterior cuando hago clic en CONFIRMAR.
la función para mi llamada a la API se ve así
function ElevatorStatusScreen({navigation, route}) { const { Elevator } = route.params; const [elevatorStatus, setEleStatus] = React.useState(Elevator.status); const [statusColor, setColorStatus] = React.useState('red'); // Call to the api to update the status of an elevator const endtask = () => { axios.get(`https://apilink/api/Elevators/update/${Elevator.id}/Operational`) .then(response => { if(response.status == 200){ Alert.alert('Status has been changed to Operational!') setColorStatus('green') setEleStatus('Operational'); } }) } return ( <ImageBackground style={styles.background} source={require('../assets/white.jpg')} > <Text style={styles.title}>Elevator: {Elevator.id}</Text> <Text style={{ color: statusColor }}>{elevatorStatus}</Text> {elevatorStatus === 'Stopped' ? ( <TouchableOpacity style={styles.endTask} onPress={() => endtask()}> <Text style={styles.endText}>END TASK</Text> </TouchableOpacity> ) : <TouchableOpacity style={styles.confirm} onPress={() => { navigation.goBack() }}> <Text style={styles.endText}>CONFIRM</Text> </TouchableOpacity> } </ImageBackground> ); }No estoy seguro de lo que estoy haciendo mal. Este es mi punto final en un proyecto de C# procedente de mi controlador de ascensores. (Lo probé y funciona)
[HttpGet("update/{id}/{status}")] public async Task<dynamic> test(string status, long id) { var elevator = await _context.elevators.FindAsync(id); elevator.Status = status; await _context.SaveChangesAsync(); return elevator; }el punto final: //apilink/api/Elevators/update/1/Operational devuelve un JSON como este en mi navegador
{ "id":1, "status":"Operational", "columnId":1, "serialNumber":"666999990867" }avíseme si necesita más código y gracias por su ayuda.
El problema era que mi estado de ascensor estaba 'fuera de línea' y NO 'Detenido' en mi base de datos... lo siento.