Задать вопрос
@Esm322

Как отключить navigator.geolocation.watchPosition()?

Подскажите, пожалуйста, как отключить navigator.geolocation.watchPosition(). У меня есть метод, который по нажатию кнопки включает наблюдение за местоположением. Мне необходимо, чтобы после размонтирования компонента, наблюдение отключалось. Пробовал я через navigator.geolocation.clearWatch(). Но так как это метод, то наблюдение не отключается, пробовал также возвращать id. Включать отслеживание необходимо только по нажатию кнопки, поэтому не писал так:
const id = navigator.geolocation.watchPosition((position) => {
    const { latitude, longitude } = position.coords;

    continousCoordinates.value = [
      longitude,
      latitude
    ]
  }, error, options);

onUnmounted(() => {
  navigator.geolocation.clearWatch(id);
})

Вот как всё выглядит:
// Метод включения наблюдения
const getContinuousPosition = () => {
  const id = navigator.geolocation.watchPosition((position) => {
    const { latitude, longitude } = position.coords;

    continousCoordinates.value = [
      longitude,
      latitude
    ]
  }, error, options);

  return id;
};

// Общий метод с помощью которого всё срабатывает
const postImmediate = () => {
  getContinuousPosition();

  // Http запрос
  store.postImmediateTask(user.value!.phone, user.value!.fullname, currDate, continousCoordinates.value!)
};

// Если изменяются координаты, то отправляет http запрос
watch(continousCoordinates, (newValue) => {
  if (newValue) {
    store.patchImmediateTask(user.value!.fullname, newValue);
  }
})

// Прекращение наблюдения при размонтировании
onUnmounted(() => {
  navigator.geolocation.clearWatch(getContinuousPosition());
})
  • Вопрос задан
  • 23 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы