react native 中的地理位置连续运行

Posted

技术标签:

【中文标题】react native 中的地理位置连续运行【英文标题】:Geolocation in react native runs continously 【发布时间】:2020-03-30 15:38:14 【问题描述】:

我尝试创建一个简单的 react native 应用程序,并使用 react-native-maps 在地图中显示我的位置。

const [coordinate, setCoordinate] = useState()

    const getCoordinate = () => 
      navigator.geolocation.getCurrentPosition(data => 
        setCoordinate(
          latitude: data.coords.latitude,
          longitude: data.coords.longitude,
        );
      );
    

    useEffect(() => 
      getCoordinate();
    )

代码运行良好,我得到了我的位置,用标记标记。我的问题是为什么 getCoordinate 函数会不断地调用自己,并且不停地运行?

【问题讨论】:

【参考方案1】:

您没有将第二个参数传递给 useEffect(它应该是一个依赖项数组),这会导致它在每次渲染时运行。

由于您只希望它运行一次(基本上是在挂载时),因此您需要将一个空数组作为第二个参数传递给您的 useEffect

useEffect(() => 
  getCoordinate();
, [])

【讨论】:

以上是关于react native 中的地理位置连续运行的主要内容,如果未能解决你的问题,请参考以下文章

React Native 中的地理位置准确性

错误回调不适用于 React Native 中的地理位置

react-native 中的 navigator.geolocation.getCurrentPosition 是不是与本地地理定位方法一样准确?

react-native-mauron85-background 地理定位错误

React Native 和 iOS 模拟器错误的地理位置

使用 React Native 和 iOS 模拟器的错误地理位置