如何在React Component提交功能中获取用户地理位置

时间:2019-05-27 23:36:46

标签: javascript reactjs geolocation

编辑我重新启动了计算机,并且它再次开始工作。

这听起来很奇怪,但是我昨晚用这个确切的代码入睡了,结果是纬度和经度的控制台日志。

现在它已经完全坏了,我不知道为什么。

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()的调用,并且我也永远不会在底部获得坐标的输出。

0 个答案:

没有答案