如何修复“TypeError: undefined is not an object (evaluating '_reactNativeCamera.default.constants')” 在本机反应中的错误?

ard*_*n92 4 android react-native react-native-camera

我正在尝试在我的项目中使用“React-native-camera”库。我实际上已经这样做了 50 多次,每次在我的 mac 和 Linux 系统上一切都很好。

但是现在突然之间它不再在我的 Linux 系统上工作并且不断产生这个错误(尽管在 mac 上工作!)。

在此处输入图片说明

我已经在这里检查了所有配置步骤 我已经尝试添加 missingDimensionStrategy 'react-native-camera', 'general' 到 app build.gradle 我已经尝试添加 maven {url " https://jitpack.io "} 和maven {url " https://maven.google.com "} 到项目 build.gradle 我试过从 .ideas 目录中删除 madules.xml 并重新启动 android studio,无论是否清除缓存。

仍然没有这是我让相机模块运行的示例代码:

class CameraApp extends Component {
  constructor(props) {
    super(props);

    this.state = {
      path: null,
      uri: '',
      imageName: ''
    };
  }

  takePicture() {
    this.camera.capture()
      .then((data) => {
        console.log(data);  
      })
      .catch(err => console.error(err));
}

  renderCamera() {
    return (
      <View>
        <Camera
          ref={(cam) => {
            this.camera = cam;
          }}
          style={styles.preview}
          aspect={Camera.constants.Aspect.fill}
          captureTarget={Camera.constants.CaptureTarget.disk}
        >
          <TouchableHighlight
            style={styles.capture}
            onPress={this.takePicture.bind(this)}
            underlayColor="rgba(255, 255, 255, 0.5)"
          >
            <View />
          </TouchableHighlight>
        </Camera>
      </View>
    );
  }


  render() {
    return (
      <View style={styles.container}>
        {this.renderCamera()}
      </View>
    );
  }
};
Run Code Online (Sandbox Code Playgroud)

Muh*_*bba 5

这里有三个问题:

首先,导入应该是这样的:

import {RNCamera as Camera}  from 'react-native-camera';
Run Code Online (Sandbox Code Playgroud)

其次constants第一个字母必须大写:Constants

第三,无论是Aspect.fillCaptureTarget.disk是的不再一部分Constants。所以你应该删除以下两行:

  aspect={Camera.constants.Aspect.fill}
  captureTarget={Camera.constants.CaptureTarget.disk}
Run Code Online (Sandbox Code Playgroud)

您可以在https://react-native-community.github.io/react-native-camera/docs 的官方文档中检查这些常量的更新替代方案


fna*_*ira 4

我发现这个链接,也许对你有帮助(它对我有用): Issue #1288 react-native-camera

你应该像这样导入:

import { RNCamera } from 'react-native-camera';

不是这样的

import Camera from 'react-native-camera';