Как исправить ошибку TypeError: undefined не является объектом (оценка ошибки «_reactNativeCamera.default.constants») в реакции на родной?

Я пытаюсь использовать библиотеку React-native-camera в своем проекте. Я делал это буквально более 50 раз, и каждый раз все шло хорошо как на моем Mac, так и на Linux.

Но теперь внезапно он больше не будет работать в моей системе Linux и продолжает генерировать эту ошибку (хотя работает на Mac!).

введите здесь описание изображения

Я проверил все шаги по настройке здесь и попытался добавить missingDimensionStrategy 'react-native-camera', 'general' в приложение build.gradle Я пытался добавить maven {url "https://jitpack.io"} и maven {url "https://maven.google.com" } для проекта build.gradle Я попытался удалить madules.xml из каталога .ideas и перезапустить студию Android как с очисткой кеша, так и без нее.

по-прежнему ничего. Это был мой пример кода для запуска модуля камеры:

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>
    );
  }
};

person ardn92    schedule 04.05.2019    source источник
comment
Вы нашли решение? У меня такая же проблема...   -  person fnaquira    schedule 06.05.2019
comment
нет еще нет. Думаю, вместо этого я просто воспользуюсь старой доброй RNCamera.   -  person ardn92    schedule 07.05.2019
comment
Любое решение для этого   -  person sejn    schedule 09.12.2019
comment
@seijn import {RNCamera} из 'react-native-camera'; затем используйте RNCamera ( ‹RNCamera ref={ref =› { this.camera = ref; }} ...   -  person ardn92    schedule 10.12.2019


Ответы (2)


Здесь есть три проблемы:

Во-первых, импорт должен быть таким:

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

Во-вторых, первая буква constants должна быть заглавной: Constants

В-третьих, Aspect.fill и CaptureTarget.disk больше не являются частью Constants. Таким образом, вы должны удалить следующие две строки:

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

И вы можете проверить обновленные варианты этих констант в официальной документации по адресу https://react-native-community.github.io/react-native-camera/docs

person Muhammad Altabba    schedule 06.02.2020

Я нашел эту ссылку, возможно, она будет вам полезна (у меня она работает): Ошибка № 1288 React-Native-Camera

Вы должны импортировать так:

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

Не так

import Camera from 'react-native-camera';

person fnaquira    schedule 06.05.2019
comment
Я меняю, как вы предложили, получил ReferenceError: не удается найти переменную: камера - person Rickard; 20.07.2019
comment
@Rickard, как ты решил эту проблему? - person ASN; 21.11.2019
comment
Просто измените каждое упоминание о камере и начните использовать RNCamera, это тот же объект. - person fnaquira; 02.01.2020