我正在尝试制作一个简单的反应天气应用程序,该应用程序使用地理定位方法获取用户当前位置。我希望 api 等待显示,直到它检索到它们的坐标。它获取我的坐标和数据,但不更新“数据”值的状态。也许我没有指向正确的键/值或其他东西。
1 回答

牧羊人nacy
TA贡献1862条经验 获得超7个赞
您的请求正在运行,您只是没有正确解析响应。如果您查看控制台,您会发现数据响应是一个包含名为数据的数组的对象。您正在尝试将城市值分配给根对象中不存在但存在于数据数组中包含的对象中的属性。
尝试改变这个:
const data = await api_call.json();
this.setState({
latitude: latitude,
longitude: longitude,
city: data.city_name,
data: data,
isLoaded: true
});
对此:
const {data} = await api_call.json();
this.setState({
latitude: latitude,
longitude: longitude,
city: data[0].city_name,
data: data[0],
isLoaded: true
});
data尝试处理数组中的 0 个或多于 1 个对象也是明智的。
还值得一提的是这一行:
const {data} = await api_call.json();
被称为对象解构并且与这样做相同:
let data = await api_call.json();
data = data.data;
添加回答
举报
0/150
提交
取消