【问题标题】:Undefined is not an object _expo.camera.constant when using expo Camera SDK使用 expo Camera SDK 时,未定义不是对象 _expo.camera.constant
【发布时间】:2017-09-11 06:55:15
【问题描述】:

我用create-react-native-app (CRNA) 创建了一个RN 项目。我想使用expo提供的Camera API。为此,我只是复制了此处的示例https://docs.expo.io/versions/latest/sdk/camera.html 并包含了Component。启动应用程序给了我以下信息:Undefined is not an object _expo.camera.constant 带有大量堆栈跟踪...任何想法这里出了什么问题?

【问题讨论】:

  • 请从您的代码中给出一些代码示例
  • @bennygenel 我完全复制并粘贴(如 Q 中所写)expo 给出的组件示例。
  • 您是否设置了使用相机所需的权限?
  • @bennygenel 我应该在哪里设置它们?在代码中,它们看起来像是设置在这里const { status } = await Permissions.askAsync(Permissions.CAMERA); this.setState({ hasCameraPermission: status === 'granted' });
  • 是的,你是对的。我看不出有什么不对。它像expo没有安装。我没有任何想法。对不起

标签: javascript react-native expo


【解决方案1】:

对于那些在相机设置方面有问题的人。只需更改:import {Camera, Permissions} ... 通过这些行:

import * as Permissions from 'expo-permissions';
import { Camera } from 'expo-camera';

您需要安装摄像头,因此您需要使用以下命令进行安装:

expo install expo-camera

现在只需运行您的应用并干杯!

【讨论】:

  • 我只需要添加import { Camera } from 'expo-camera';。然后使用Camera.requestPermissionsAsync(); 处理权限
【解决方案2】:

我在尝试将 Expo Camera API 用于 CRNA 项目时遇到了同样的问题。我设法通过 Expo SDK 升级访问相机 API。以下是我遵循的步骤:

  1. app.json 中更改我的 Expo SDK 版本:"sdkVersion": "20.0.0",
  2. package.jsonchange 我当前对 Expo、React 和 React Native 的依赖项:

"expo": "20.0.0-alpha.4", "react": "16.0.0-alpha.12", "react-native":"https://github.com/expo/react-native/archive/sdk-20.0.0.tar.gz",

  1. 删除我的node_modules文件夹
  2. 再次运行npm install

这些步骤并没有破坏打包程序:我仍然可以使用 npm start 和 Expo XDE 启动我的项目。不过,我没有花时间测试副作用,尤其是 CRNA 提供的弹出过程。

我只能建议在非生产应用上测试此修复。

不过,希望这能有所帮助!

【讨论】:

  • 我只是切换到react-native init。以这种方式开箱即用。您可以重复使用您使用CRNA 编写的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
  • 1970-01-01
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
相关资源
最近更新 更多