编辑我重新启动了计算机,并且它再次开始工作。
这听起来很奇怪,但是我昨晚用这个确切的代码入睡了,结果是纬度和经度的控制台日志。
现在它已经完全坏了,我不知道为什么。
showPosition = (position) => {
console.log('test');
this.setState(state => ({
userlat: position.coords.latitude,
userlong: position.coords.longitude,
}));
this.handleSubmit();
};
getLocation = () => {
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(this.showPosition);
}
else {
alert("Geolocation isn't supported by device hardware.");
}
};
handleSubmit = () => {
this.setState(state => ({
loading: true
}));
if(this.state.userlat == null || this.state.userlong == null){
this.getLocation();
return false;
}
console.log(this.state.userlat);
console.log(this.state.userlong);
}
我从Geolocation API - wait for getting position的答案中学到了很多灵感。
我的代码(现在)的问题是console.log('test')
永远不会发生。因此,永远不会发生对handleSubmit()
的调用,并且我也永远不会在底部获得坐标的输出。