【问题标题】:Unhandled promise rejection: undefined is not an object (evaluating _expoLocation.requestForegroundPermissionsAsync)未处理的承诺拒绝:未定义不是对象(评估 _expoLocation.requestForegroundPermissionsAsync)
【发布时间】:2021-05-10 01:35:48
【问题描述】:

我正在尝试通过 official example for expo-location 在 React Native with Expo(Android 托管工作流)中获取用户位置。这是我的功能:

import Location from 'expo-location';

const handleLocationFinder = async () => {
  const { status } = await Location.requestForegroundPermissionsAsync();
  if (status !== 'granted') {
    console.log('Permission denied. Enter the location manually.');
    return;
  }
  const location = await Location.getCurrentPositionAsync({});
  console.log(location);
};

但是,当我调用这个函数时,我得到了这个警告:

[Unhandled promise rejection: TypeError: undefined is not an object (evaluating '_expoLocation.default.requestForegroundPermissionsAsync')]

我尝试了什么

  • 在模拟器中重新安装应用;
  • 全新模拟器;
  • 我的实际手机(Android 8.0);
  • "permissions": ["ACCESS_FINE_LOCATION"] 添加到app.json(尽管世博会似乎这样做);
  • expo upgrade;
  • 祈祷。

平台信息(在expo upgrade之后):

  • Android 11.0(模拟 Pixel 4)
  • expo: 41.0.1
  • react-native: sdk-41.0.0
  • expo-location: 12.0.4

【问题讨论】:

  • 当我使用现在已弃用的 requestPermissionsAsync();相反,它可以工作,除了警告......
  • @PhilCowan,我实际上放弃了与 expo 的斗争并退出了一个简单的工作流程。之后,使用react-native-permissions 效果很好。

标签: android react-native geolocation expo


【解决方案1】:

我遇到了同样的问题,当我改变时:

import Location from "expo-location";

收件人:

import * as Location from "expo-location";

就像文档中的内容一样,它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-16
    • 2021-01-26
    • 2021-07-24
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多