Javascript 如何将地理定位API坐标从嵌套函数中取出并进入React状态?

Javascript 如何将地理定位API坐标从嵌套函数中取出并进入React状态?,javascript,reactjs,api,geolocation,Javascript,Reactjs,Api,Geolocation,我正在尝试使用当用户单击按钮时获取用户的位置: “使用我的位置” 我可以使用以下代码访问横向/纵向坐标: setNewLatLong = () => { navigator.geolocation.getCurrentPosition(displayLocationInfo); function displayLocationInfo(position) { const longitude = position.coords.longitude; cons

我正在尝试使用当用户单击按钮时获取用户的位置:

“使用我的位置”

我可以使用以下代码访问横向/纵向坐标:

setNewLatLong = () => { 
 navigator.geolocation.getCurrentPosition(displayLocationInfo);

  function displayLocationInfo(position) {
      const longitude = position.coords.longitude;
      const latitude = position.coords.latitude;

      console.log(`long: ${longitude} | lat: ${latitude}`);
  }
}

但是我无法将数据放入我的状态,因为
纬度
经度
变量在函数中嵌套太多


如何将这些数据置于我的状态?

在React中,您可以保留组件状态中的信息。您可以这样设置状态:

this.setState({
  lon: longitude,
  lat: latitude
})

并从您的视图(渲染函数)或您可能需要的任何其他位置访问状态。

React中的每个组件状态更新都应使用
setState()
完成。 对于您的情况,可以在传入
getCurrentPosition()
的回调函数中使用
setState()


当我使用
navigator.geolocation.getCurrentPosition(position=>position.coords.longitude)
时,我还建议您考虑使用for state(在您学习完React的基础知识之后)

当它返回“undefined”状态时,您知道为什么吗?您需要访问position的权限。如果没有,则设置值将是未定义的
navigator.geolocation.getCurrentPosition(position => {
    this.setState({
        lat: position.coords.latitude,
        lng: position.coords.longitude
    });
})