从React状态对象中提取Geolocation

时间:2015-12-10 12:17:41

标签: api object reactjs geolocation double

我正在使用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将它们存储为对象。我怎样才能真正存储双打并将它们传递给子组件?

1 个答案:

答案 0 :(得分:0)

对不起 - 设置initialState时问题是语法不好:

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

而不是

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

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