不同文件 React Native 中未定义的方面

Posted

技术标签:

【中文标题】不同文件 React Native 中未定义的方面【英文标题】:Aspect of undefined in diferent file React Native 【发布时间】:2018-04-26 10:46:32 【问题描述】:

我正在尝试访问相机,但出现此错误。我尝试完成人们在其他页面中展示的所有教程以使其正常工作,但我没有相同的 loki。

我在这个文件中输入:\myproject\node_modules\lottie-ios\Example-Swift\Pods\Target Support Files\lottie-ios\Info.plist 并添加:

 <key>NSCameraUsageDescription</key>
 <string>Feetit Would you like to access Camera</string>
 <key>NSPhotoLibraryUsageDescription</key>
 <string>Feetit Would you like to access Photos</string> 

在此之前我安装了这个:

npm install react-native-camera --save

npm install react-native link react-native-camera

之后我尝试使用此代码使相机工作:

 import React, Component from 'react';
 import Camera from 'react-native-camera';
 import View, TouchableHighlight, Text, StyleSheet from 'react-native';

 export default class CameraAcess extends Component 
     takePicture() 
    const options = ;
    //options.location = ...
    this.camera.capture(metadata: options)
        .then((data) => console.log(data))
        .catch(err => console.error(err));


onBarCodeRead(e) 
    console.log(
        "Barcode Found!", "Type: " + e.type + "\nData: " + e.data
    );


render() 
    return (
        <View style=styles.container>
            <Camera
                ref=(cam) => 
                    this.camera = cam;
                
                onBarCodeRead=this.onBarCodeRead.bind(this)
                style=styles.preview>
                <TouchableHighlight style=styles.capture onPress=this.takePicture.bind(this)>[CAPTURE]
                    <Text>Click me</Text>
                </TouchableHighlight>
            </Camera>
        </View>
    );
  

 const styles = StyleSheet.create(
     container: 
    flex: 1,
    flexDirection: 'row',
,
preview: 
    flex: 1,
    justifyContent: 'flex-end',
    alignItems: 'center'
,
 capture: 
    flex: 0,
    backgroundColor: '#fff',
    borderRadius: 5,
    color: '#000',
    padding: 10,
    margin: 40
   
);

我得到这个错误'无法读取未定义的属性'方面'。这个错误的文件是另一个,是Camera.js。有人可以告诉我我必须做什么才能让它工作吗?

【问题讨论】:

Camera.js 在哪里.. 你检查过相机权限吗? Camera.js 位于:myproject/node_modules/react-native-camera/src/Camera.js 我必须添加什么权限? 【参考方案1】:

我查看了文档并没有在所需的相机上看到这个变量,但是我确实在我构建的一个示例中看到我在相机上设置了这个变量。看看这是否有帮助,因为它可能不是从默认值开始的。

aspect=Camera.constants.Aspect.fill

更改为您的偏好。

【讨论】:

我必须在哪里添加这一行?在我的文件项目中还是在 especif 文件中? 内部相机。在下面做 onBarCodeRead 在文件 Camera.js 我有很多 onBarCodeRead。我的朋友是谁? 在渲染内的相机标签内。它是相机的变量【参考方案2】:

如果你在 ios 中遇到这个问题,那么

移除之前安装的 react-native-camera pod。

 $ cd ios
 $ rm -rf Pods/
 $ pod install

然后手动链接 如库中提到的readme

请检查相机所需的权限。

【讨论】:

我试过这样:npm uninstall pods npm install pod 我遇到了同样的问题:(

以上是关于不同文件 React Native 中未定义的方面的主要内容,如果未能解决你的问题,请参考以下文章

OneSignal - Android React Native 中未显示弹出通知

iOS 14 升级中未加载 react-native 图像

React Native 中未生成短动态链接

React Native iOS - 在 Podfile 中启用 Hermes,但在应用程序中未启用

React-Native - 全局变量不变

在UIManager中未发现违反常例的行为:requireNativeComponent:“ RangeSlider”