Геолокация в естественных условиях постоянно работает - PullRequest
0 голосов
/ 30 марта 2020

Я попытался создать простое собственное приложение реагирования и показать свою позицию на карте с помощью response-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 Ответ

0 голосов
/ 30 марта 2020

Вы не передаете второй аргумент useEffect (который должен быть массивом зависимостей), который заставляет его запускаться при каждом рендеринге.

Поскольку вы хотите, чтобы он запускался только один раз (по существу при монтировании), вам нужно передать пустой массив в качестве второго аргумента вашему useEffect:

useEffect(() => {
  getCoordinate();
}, [])
...