javascript - 如何在 react 中获取位置信息?

标签 javascript reactjs

我想在 React 中使用 Geolocation API 获取位置信息。

我在这段代码中制作了一个按钮来获取位置信息。

import React, { Component } from 'react'

class App extends Component {
  constructor(props) {
    super(props)
    this.state = {
      latitude: null,
      longitude: null,
    }
  }

  position = async () => {
    await navigator.geolocation.getCurrentPosition(
      position => this.setState({ 
        latitude: position.coords.latitude, 
        longitude: position.coords.longitude
      }), 
      err => console.log(err)
    );
    console.log(this.state.latitude)
  }

  render() {
    return (
      <div>
        <button onClick={this.position} className='Filter'>Filter</button>
      </div>
    );
  }
}

export default App;

一旦我按下一个按钮,控制台就会显示null。 但是,当我再次按下 按钮 时,控制台会显示位置信息。

你知道为什么我第一次获取不到位置信息吗?

最佳答案

setState 是一个异步函数。

当您第一次调用 position 时,状态最终会更新。第二次它已经存在,这就是它被记录的原因。

您可以将日志记录移动到 setState 的第二个参数,这是一个回调。

this.setState({ 
    latitude: position.coords.latitude, 
    longitude: position.coords.longitude
  }, newState => console.log(newState))

关于javascript - 如何在 react 中获取位置信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55780750/

相关文章:

javascript - 如何正确创建和渲染功能组件?

reactjs - 类型“typeof import”上不存在“firestore”

javascript - 如何在 React 中使用 .css 样式表?

javascript - onclick事件后调用按钮的id到javascript文件

javascript - 将先前的 event.target.id 存储在变量中

javascript - 使用 styled-components 时需要 `import React from ' react'`?

javascript - 使用 react context api 从辅助函数显示加载器

javascript - 从 json 源导入图像 (create-react-app)

javascript - AJAX 响应文本作为 DOM?

javascript - 如何将所有数据添加到我的数组中以与色标一起使用?