Я использую 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, пробовал уже ..
Спасибо за вашу помощь!