Api 从状态对象提取地理位置
我正在使用Geolocation API和ReactJS做一些事情,并将位置存储为状态变量,因为组件会随着网页的移动或用户随机更改位置而更改位置 因此,组件如下所示:Api 从状态对象提取地理位置,api,object,reactjs,geolocation,double,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
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将它们存储为对象。如何实际存储双精度值并将其传递给子组件?很抱歉--设置initialState时出现的问题是语法错误:
this.setState({longitude: longitude, latitude: lat});
相对于
this.setState({longitude: {longitude}, latitude: {lat}});
关于React语法是如何工作的,这是一个n00b错误:-/更具体地说,当我执行诸如console.log(this.state.latitude)之类的操作时,我得到的是[object object],但不是一个double,这正是我试图做的。它是key/value或key/id,我无法获得实际的double。没关系,我在设置初始状态时做了一些脑死的事情。这比我最初想象的要简单得多。