从 React 状态对象中提取地理位置

Posted

技术标签:

【中文标题】从 React 状态对象中提取地理位置【英文标题】:Extracting Geolocation from React state objects 【发布时间】:2015-12-10 12:17:40 【问题描述】:

我正在使用 Geolocation API 和 ReactJS 做一些事情,并且我将位置存储为状态变量,因为组件会随着网页的移动或用户随机更改位置而更改位置。

所以组件看起来像这样:

var GeoComp = React.createClass(
    setPosition: function(position)
    var lat = position.coords.latitude;
    var longitude = position.coords.longitude;
    this.setState(longitude: longitude, latitude: lat);
    this.setState(statusText: 'Successfully found you at ' + this.state.longitude + ',' + this.state.latitude);
,
getInitialState: function()
    return longitude: 0, latitude: 0, placeName: '', statusText: 'Locating you....';

,
componentDidMount: function()
    if (!navigator.geolocation)
        this.setState(statusText: 'Your browser does not support geolocation...');
    
    else
        navigator.geolocation.getCurrentPosition(this.setPosition, this.errorPosition);
    

......

但我遇到的问题是从经度和纬度变量中提取双精度。 React 将它们存储为对象。我怎样才能实际存储双打并将它们传递给子组件?

【问题讨论】:

更具体地说,当我执行诸如 console.log(this.state.latitude) 之类的操作时,我得到 [object Object] 但不是双精度数,这就是我想要做的。它是键/值或键/ID,我无法获得实际的双精度。 没关系,我在设置初始状态时做了一些脑残的事情。这比我最初想象的要简单得多。 【参考方案1】:

很抱歉——问题是设置 initialState 时语法不好:

this.setState(longitude: longitude, latitude: lat);

相对

this.setState(longitude: longitude, latitude: lat);

这是一个关于 React 语法如何工作的 n00b 错误:-/

【讨论】:

以上是关于从 React 状态对象中提取地理位置的主要内容,如果未能解决你的问题,请参考以下文章

geolib 在 react-native 状态下尚未准备好地理位置坐标

React中将对象从数组移动到数组到另一个对象时的位置镜像

react-router 如何在页面刷新时保持位置状态?

从 react-router-redux 获取当前位置

无法从 react-native 中的 navigation.geolocation.getCurrentPosition() 返回位置

React Native - AsyncStorage 和状态存储在硬件内存中的啥位置?