![](/img/trans.png)
[英]React Native call Odoo API via Axios struggling with CORS
[英]API call with React Native and axios
我是 React 的新手,我想做的是用 GET 请求调用我的 API 以将电梯的状态更改为“正在运行”,并且它的颜色状态从红色变为绿色。 问题是它似乎没有调用 API 并在我单击 CONFIRM 时将我带回之前的屏幕。
我打电话给 API 的 function 看起来像这样
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>
);
}
不知道我做错了什么。 这是来自我的电梯 controller 的 C# 项目中的端点。 (我测试了它并且它有效)
[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;
}
端点: //apilink/api/Elevators/update/1/Operational 在我的浏览器中返回一个像这样的 JSON
{ "id":1, "status":"Operational", "columnId":1, "serialNumber":"666999990867" }
如果您需要更多代码,请告诉我,并感谢您的帮助。
问题是我的电梯状态在我的数据库中是“离线”而不是“停止”......对此感到抱歉
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.