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

安装expo-camera@14.1.3后,导入CameraView等成员出现TS2305报错

问题原因及解决方案
  • 核心原因:你安装的expo-camera@14.1.3版本不支持CameraView和useCameraPermissions这两个API。这两个是expo-camera从15.0.0版本开始才新增的现代化API,14.x系列仍沿用旧的组件与权限处理逻辑。

  • 解决方案:

    1. 升级expo-camera版本:执行命令升级到15.x及以上版本(建议匹配你的Expo SDK版本,比如Expo SDK 49对应expo-camera@15.x,SDK 50对应expo-camera@16.x):
      npm install expo-camera@latest
      # 或使用yarn
      yarn add expo-camera@latest
      
    2. 无法升级时改用旧API:如果受限于项目依赖不能升级,直接替换为14.x版本兼容的写法:
      • 用旧的<Camera>组件替代CameraView
      • 用requestCameraPermissionsAsync和getCameraPermissionsAsync方法替代useCameraPermissions,示例代码如下:
        import { Camera, CameraType } from 'expo-camera';
        import { useState, useEffect } from 'react';
        import { Button, View, Text } from 'react-native';
        
        export default function CameraExample() {
          const [hasPermission, setHasPermission] = useState<boolean | null>(null);
          const [cameraType, setCameraType] = useState(CameraType.back);
        
          useEffect(() => {
            (async () => {
              const { status } = await Camera.requestCameraPermissionsAsync();
              setHasPermission(status === 'granted');
            })();
          }, []);
        
          if (hasPermission === null) {
            return <View />;
          }
          if (hasPermission === false) {
            return <Text>无相机访问权限</Text>;
          }
          return (
            <View style={{ flex: 1 }}>
              <Camera style={{ flex: 1 }} type={cameraType}>
                <View
                  style={{
                    flex: 1,
                    backgroundColor: 'transparent',
                    flexDirection: 'row',
                    alignItems: 'flex-end',
                    padding: 20,
                  }}>
                  <Button
                    title="切换镜头"
                    onPress={() => {
                      setCameraType(cameraType === CameraType.back ? CameraType.front : CameraType.back);
                    }}
                  />
                </View>
              </Camera>
            </View>
          );
        }
        

内容的提问来源于stack exchange,提问作者Victor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:58:12