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
});
})