未定义不是对象(评估 '_reactNativeCamer.RNCamera.Constants'

Posted

技术标签:

【中文标题】未定义不是对象(评估 \'_reactNativeCamer.RNCamera.Constants\'【英文标题】:Undefined is not an object (evaluating '_reactNativeCamer.RNCamera.Constants'未定义不是对象(评估 '_reactNativeCamer.RNCamera.Constants' 【发布时间】:2018-05-04 14:29:26 【问题描述】:

我正在试用 react-native-camera,我总是得到 ​​p>

未定义不是一个对象(评估 '_reactNativeCamer.RNCamera.Constants'

作为一个错误。

旧相机工作正常,只是新相机无法启动。

我只是复制粘贴了示例代码,但它似乎不起作用!它有什么问题?

import React,  Component  from 'react';
import 
  View,
  Text,
  Dimensions,
  StyleSheet,
  TouchableOpacity
 from 'react-native';
import  RNCamera  from 'react-native-camera';

class Camera extends Component 
  render() 
    return (
      <View style=styles.container>
        <RNCamera
          ref=ref => 
            this.camera = ref;
          
          type=RNCamera.Constants.Type.back
          permissionDialogTitle='Permission to use camera'
          permissionDialogMessage='We need your permission to use your camera phone'
        />
        <View style= flex: 0, flexDirection: 'row', justifyContent: 'center' >
          <TouchableOpacity
              onPress=this.takePicture.bind(this)
              style=styles.capture
          >
            <Text style= fontSize: 14 > SNAP </Text>
          </TouchableOpacity>
        </View>
      </View>
    );
  
  takePicture = async function() 
    if (this.camera) 
      const options =  quality: 0.5, base64: true ;
      const data = await this.camera.takePictureAsync(options)
      console.log(data.uri);
    
  ;


const styles = StyleSheet.create(
  container: 
    flex: 1,
    flexDirection: 'column',
    backgroundColor: 'black'
  ,
  preview: 
  flex: 1,
  justifyContent: 'flex-end',
  alignItems: 'center'
,
capture: 
  flex: 0,
  backgroundColor: '#fff',
  borderRadius: 5,
  padding: 15,
  paddingHorizontal: 20,
  alignSelf: 'center',
  margin: 20

);

export  Camera ;

谢谢

【问题讨论】:

按照RNCamera的安装步骤从头开始 我已经这样做了 npm install react-native-camera --save react-native link react-native-camera ,这两件事你都做了? 我重新安装了所有东西,现在它可以工作了 【参考方案1】:

您需要将此添加到文件android/app/build.gradle

android 
  ...
  defaultConfig 
    ...
    missingDimensionStrategy 'react-native-camera', 'general' <-- insert this line
  

【讨论】:

【参考方案2】:

我遇到了同样的问题。

这解决了它。

import  RNCamera  from 'react-native-camera';

【讨论】:

以上是关于未定义不是对象(评估 '_reactNativeCamer.RNCamera.Constants'的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:未定义不是对象(评估'_ref.state)

未处理的承诺拒绝:未定义不是对象(评估 _expoLocation.requestForegroundPermissionsAsync)

TypeError:未定义不是一个对象(评估'_app.firebase.apps')

TaskQueue:任务错误:未定义不是反应原生的对象(评估'_this.view._component.measureInWindow')

如何在本机反应中修复“TypeError:未定义不是对象(评估'_reactNativeCamera.default.constants')”错误?

错误:未定义不是对象(评估 \'RCTWebSocketManager.connect\')