2 votes

React Native Undefined n'est pas un objet (évaluation de 'this.camera.capture')

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));
}
}

Voici mon code. Lorsque j'appuie sur le bouton takepicture, je reçois undefined is not an object. Qu'est-ce qui ne va pas dans mon code ? takePicture() fonctionne pourtant sur un élément Text. J'ai ajouté un TouchableHighlight autour de l'image et j'ai ajouté le onPress à TouchableHighlight, mais maintenant il se plante.

Bien à vous, Matthew

0voto

user1422535 Points 369

Je suppose que vous avez découvert ça entre-temps. La variable 'camera' est assignée dans le contexte de CameraView mais le code essaie d'y accéder depuis CaptureControls.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X