Реализация реакции-навигации 5 с помощью TaskManager expo - PullRequest
0 голосов
/ 07 мая 2020

Я использую React Navigatoin 5, поэтому основное приложение теперь является функцией, а не классом. По этой причине я столкнулся с проблемой реализации TaskManager и BackgroundLocation expo.

Вот часть кода:

const LOCATION_TASK_NAME = 'background-location-task';

TaskManager.defineTask(LOCATION_TASK_NAME, ({ data, error }) => {
  if (error) {
    console.log(error);
    return;
  }
  if (data) {
    const { locations } = data;
    // do something with the locations captured in the background
    console.log('this is finally working');
  }
});

async function locFunction() {
  const { status } = await Location.requestPermissionsAsync();
  if (status === 'granted') {
    console.log('Background location is on');
    await Location.startLocationUpdatesAsync(LOCATION_TASK_NAME, {
        accuracy: Location.Accuracy.Highest,
        timeInterval: 50
  });
  }
}

export default function App() {

 locFunction();

  return (
    <NavigationContainer>
            <StackNavigator />
    </NavigationContainer>
  );

}

Это вызывает ошибку: «Необходимо вызвать TaskManager.defineTask. во время фазы инициализации! », но я не знаю, где находится фаза инициализации в этой ситуации .. Должен ли я вызывать функцию из другого класса? Кроме того, я не могу сделать App () asyn c, пробовал уже ..

Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...