微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

地理位置不更新状态reactjs

如何解决地理位置不更新状态reactjs

我对React还是很陌生,我想要实现的是,当我单击按钮时,我的位置被检测到并更新了状态,我尝试这样做,但是由于某种原因,它没有更新我的位置州,我已经在互联网上搜索了所有内容,但找不到适合我业务的解决方案。非常感谢您的协助。

this.state = { coordinatesList: [123,456],[567,891]  }

<button onClick={this.addCurrentLocation}></button>

addCurrentLocation() {
var coordinatesList = this.state.coordinatesList;
console.log("coordinatesList ",coordinatesList)
navigator.geolocation.getCurrentPosition((position) => {
  coordinatesList.push([position.coords.latitude,position.coords.longitude]); ==> this doesn't work
})
// coordinatesList.push([123,456]); ===> this works
   this.setState({
     coordinatesList
   })
}

解决方法

您的问题是getCurrentPosition是异步的,因此您必须将setState放在回调内,否则setStategetCurrentPosition结束之前会被调用。

addCurrentLocation() {

  var coordinatesList = this.state.coordinatesList;

  navigator.geolocation.getCurrentPosition((position) => {
    coordinatesList.push([position.coords.latitude,position.coords.longitude]);

     this.setState({
       coordinatesList
     })
   }) 
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。