Неопределенный не является объектом (вычисление ‘_this.camera’)

#javascript #react-native #expo

#javascript #реагировать -родной #выставка

Вопрос:

Я пытаюсь показать канал камеры с камеры для селфи внутри <View> компонента, и я постоянно получаю эту ошибку. Я попытался переустановить react-native-camera и использовать expo-camera, но у меня совсем нет идей. Код:

 import {RNCamera, Camera} from 'react-native-camera'
import { View,Text,Screen,Image  } from 'react-native';
import Button from 'apsl-react-native-button';
import React from 'react';

export default function Reunion ({navigation}){
    return (
        <View style={{
            backgroundColor: "#fff",
            flex:1,
            alignItems: 'center',
            justifyContent: 'center'
        }}>
        <View
        style={{
            position: 'relative',
            left:0,
            top:-15,
            width:1080,
            height:480,
            backgroundColor: '#c4c4c4'
        }}
        >
        <RNCamera
          style={{ flex: 1, alignItems: 'center' }}
          captureAudio={false}
          ref={ref => {
            this.camera = this.camera.bind(this )
            this.camera = ref
          }}
        />
            
        </View>


        </View>
    )
}
  

Сообщение об ошибке

Комментарии:

1. не используйте «this» в «Функциональных компонентах», используйте «useRef» или «createRef»

Ответ №1:

Это может помочь

 import {RNCamera, Camera} from 'react-native-camera'
import { View,Text,Screen,Image  } from 'react-native';
import Button from 'apsl-react-native-button';
import React from 'react';

export default function Reunion ({navigation}){

    const cameraRef = React.createRef();

    return (
        <View style={{
            backgroundColor: "#fff",
            flex:1,
            alignItems: 'center',
            justifyContent: 'center'
        }}>
        <View
        style={{
            position: 'relative',
            left:0,
            top:-15,
            width:1080,
            height:480,
            backgroundColor: '#c4c4c4'
        }}
        >
        <RNCamera
          style={{ flex: 1, alignItems: 'center' }}
          captureAudio={false}
          ref={cameraRef}
        />
            
        </View>
        </View>
    )
}