为了账号安全,请及时绑定邮箱和手机立即绑定

我得到了我的坐标,但“数据”的状态没有更新

我得到了我的坐标,但“数据”的状态没有更新

喵喔喔 2022-12-22 15:58:54
我正在尝试制作一个简单的反应天气应用程序,该应用程序使用地理定位方法获取用户当前位置。我希望 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;


查看完整回答
反对 回复 2022-12-22
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号