未处理的承诺拒绝:未定义不是对象(评估 _expoLocation.requestForegroundPermissionsAsync)
Posted
技术标签:
【中文标题】未处理的承诺拒绝:未定义不是对象(评估 _expoLocation.requestForegroundPermissionsAsync)【英文标题】:Unhandled promise rejection: undefined is not an object (evaluating _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
之后):
expo
: 41.0.1
react-native
: sdk-41.0.0
expo-location
: 12.0.4
【问题讨论】:
当我使用现在已弃用的 requestPermissionsAsync();相反,它可以工作,除了警告...... @PhilCowan,我实际上放弃了与 expo 的斗争并退出了一个简单的工作流程。之后,使用react-native-permissions
效果很好。
【参考方案1】:
我遇到了同样的问题,当我改变时:
import Location from "expo-location";
收件人:
import * as Location from "expo-location";
就像文档中的内容一样,它对我有用。
【讨论】:
以上是关于未处理的承诺拒绝:未定义不是对象(评估 _expoLocation.requestForegroundPermissionsAsync)的主要内容,如果未能解决你的问题,请参考以下文章
反应本机获取多标记[未处理的承诺拒绝:TypeError:TypeError:未定义不是对象(评估'this.state.markers.map
redux 操作功能无法正确执行 - expo“可能未处理的承诺拒绝”
未处理的承诺拒绝:TypeError:网络请求在expo react native 中失败
react-native 错误:[未处理的承诺拒绝:错误:获取 Expo 令牌时遇到错误:TypeError:网络请求失败。]