我正在尝试在我的项目中使用“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>
);
}
};
最佳答案
这里存在三个问题:
首先,导入应该是这样的:
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 的官方文档中检查这些常量的更新替代品。
关于android - 如何修复 React Native 中的 "TypeError: undefined is not an object (evaluating ' _reactNativeCamera.default.constants')”错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55982666/