【问题标题】:How to fix "TypeError: undefined is not an object (evaluating '_reactNativeCamera.default.constants')" error in react native?如何在本机反应中修复“TypeError:未定义不是对象(评估'_reactNativeCamera.default.constants')”错误?
【发布时间】:2019-05-04 12:46:57
【问题描述】:

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

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

我已经检查了所有配置步骤here 我尝试将 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>
    );
  }
};

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的问题...
  • 还没有。我想我会用旧的好的 RNCamera 代替。
  • 任何解决方案
  • @seijn import {RNCamera} from 'react-native-camera';然后使用 RNCamera ( { this.camera = ref; }} ...

标签: android react-native react-native-camera


【解决方案1】:

这里有三个问题:

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

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

第二constants的首字母必须大写:Constants

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

  aspect={Camera.constants.Aspect.fill}
  captureTarget={Camera.constants.CaptureTarget.disk}

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

【讨论】:

    【解决方案2】:

    我找到了这个链接,可能对你有帮助(它对我有用): Issue #1288 react-native-camera

    你应该像这样导入:

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

    不是这样的

    import Camera from 'react-native-camera';

    【讨论】:

    • 我按照你的建议改变了,得到 ReferenceError : Can't find variable : Camera
    • @Rickard 你是如何解决这个问题的?
    • 只要更改Camera的每一个提及并开始使用RNCamera,它是同一个Object。
    猜你喜欢
    • 2019-10-05
    • 2021-01-09
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2021-12-17
    • 2021-12-01
    相关资源
    最近更新 更多