You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用expo-camera的BarCodeScanner组件时出现Cannot read property 'BarCodeType' of undefined错误

使用expo-camera的BarCodeScanner组件时出现Cannot read property 'BarCodeType' of undefined错误

嘿,我来帮你搞定这个问题!你碰到的这个错误,十有八九是导入方式不对或者expo-camera版本更新后API有变动了,我给你一步步拆解解决方案:

1. 修正BarCodeType的导入方式

现在expo-camera(尤其是v13及以上版本)已经把BarCodeType作为单独的导出项,不再挂载在BarCodeScanner组件上了。你原来的代码可能是这么写的:

import { BarCodeScanner } from 'expo-camera';
// 然后尝试用 BarCodeScanner.BarCodeType

这就会导致找不到属性的错误,正确的导入应该改成:

import { BarCodeScanner, BarCodeType } from 'expo-camera';

之后直接用BarCodeType.QR_CODE这类常量就可以了,比如设置扫描类型的时候:

<BarCodeScanner
  barCodeTypes={[BarCodeType.QR_CODE]}
  // 其他属性...
/>

2. 检查代码拼写错误

我注意到你贴的代码里有TouchableOp,这明显是TouchableOpacity的拼写失误,这个小错误也可能引发其他异常,记得修正过来哦。

3. 确认相机权限配置

还要确保你已经在项目的配置文件(app.json或app.config.js)里正确配置了相机权限,不然即使代码对了,相机也可能无法正常工作:

{
  "expo": {
    "plugins": [
      [
        "expo-camera",
        {
          "cameraPermission": "Allow 你的应用名称 to access your camera to scan QR codes."
        }
      ]
    ]
  }
}

按照这几步调整后,那个TypeError应该就能解决啦!

备注:内容来源于stack exchange,提问作者Creasic Creasic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:53:06