Ant*_*ray 3 javascript android android-permissions react-native
我正在尝试在我的 React Native 应用程序中请求 Android 权限。我按照此处的官方文档进行操作,并收到此运行时错误(来自react-native log-android命令):
W ReactNativeJS: undefined is not an object (evaluating 'PermissionsAndroid.PERMISSIONS.CAMERA')
Run Code Online (Sandbox Code Playgroud)
这是我实际拥有的代码:
我的导入(由 WebStorm 生成):
import * as PermissionsAndroid from "react-native";
Run Code Online (Sandbox Code Playgroud)
实际请求许可的代码:
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.CAMERA,
{
'title': 'A title',
'message': 'A message'
}
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
return true;
} else {
return false;
}
} catch (err) {
console.warn(err)
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这不起作用,因为它来自官方文档。
简而言之:您应该导入react-native模块的单个成员。这看起来像这样:
import { PermissionsAndroid } from 'react-native';
Run Code Online (Sandbox Code Playgroud)
导致问题的原因是你的import语法。在您的示例中,您将整个react-native模块作为PermissionAndroid变量导入到模块中。但正如您从我的代码行中看到的那样,您只需要整个包中的一个成员。
对于我来说,在现实世界中尝试不同的 ES6 导入语法并习惯它们确实是个好主意。
| 归档时间: |
|
| 查看次数: |
1660 次 |
| 最近记录: |