如何解决地理位置不更新状态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
放在回调内,否则setState
在getCurrentPosition
结束之前会被调用。
addCurrentLocation() {
var coordinatesList = this.state.coordinatesList;
navigator.geolocation.getCurrentPosition((position) => {
coordinatesList.push([position.coords.latitude,position.coords.longitude]);
this.setState({
coordinatesList
})
})
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。