如何修复 React Native 中的“TypeError:undefined 不是对象(评估‘_reactNativeCamera.default.constants’)”错误?
我正在尝试在我的项目中使用“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>
);
}
};
这里有三个问题:
首先 ,导入应该是这样的:
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
我找到了这个链接,也许对你有帮助(对我有用): 问题 #1288 react-native-camera
你应该像这样导入:
import { RNCamera } from 'react-native-camera';
不是这样的
import Camera from 'react-native-camera';