React Native Undefined不是对象(评估'this.camera.capture')

问题描述 投票:2回答:1
export class CameraView extends Component {
render(){
    return(
        <View style={{
                flex: 1,
                width: '100%',
                height: '100%',
            }}>
            <Camera
                ref={(cam) => {
                    this.camera = cam;
                }}
                style={styles.preview}
                aspect={Camera.constants.Aspect.fill}>
                <CaptureControls></CaptureControls>
                <Image></Image>
            </Camera>
        </View>
    );
  }
}


export class CaptureControls extends Component {
render(){
    return(
        <View style={{
                flexDirection: 'row',
                alignItems: 'center',
                justifyContent: 'center',
                bottom: 30,
            }}>
            <Image style={{
                    width: 30,
                    height: 30,
                    marginRight: 75,
                }} source={require('img/opengallery.png')}></Image>
            <TouchableHighlight onPress={this.takePicture.bind(this)}>
                <Image style={{
                        width: 70,
                        height: 70,
                    }} source={require('img/takepicture.png')}> </Image>
            </TouchableHighlight>
            <Image style={{
                        width: 30,
                        height: 30,
                        marginLeft: 75,
                }} source={require('img/switchcam.png')}></Image>
        </View>
    );
}
takePicture() {
    this.camera.capture()
    .then((data) => console.log(data))
    .catch(err => console.error(err));
}
}

这是我的代码。当按下takepicture按钮时,我得到undefined不是一个对象。我的代码出了什么问题? takePicture()虽然在Text元素上工作。我在Image周围添加了一个TouchableHighlight,并将onPress添加到TouchableHighlight,但现在它崩溃了。

亲切的问候,马修

ios reactjs react-native
1个回答
0
投票

我猜你在此期间想到了这一点。 'camera'变量在CameraView的上下文中分配,但代码尝试从CaptureControls中访问它。

© www.soinside.com 2019 - 2024. All rights reserved.