Реактивная камера остается черной после замены компонентов - PullRequest
0 голосов
/ 17 апреля 2020

Я сейчас работаю над собственным приложением. Я хотел бы использовать камеру с пакетом «Экспо».

Мне удается отобразить камеру, но когда я переключаюсь между своими компонентами (компонент главного меню / компонент настроек) и возвращаюсь к компоненту камеры, предварительный просмотр камеры становится черным.

Фактически это та же проблема, что и здесь: https://github.com/expo/expo/issues/5952

Я использовал предложенное решение, но оно все еще не работает.

import React, { useState, useEffect } from 'react';
import { Text, View, TouchableOpacity, Dimensions } from 'react-native';
import { Camera } from 'expo-camera';
import { useFocusEffect, useNavigation } from '@react-navigation/native';
import { FontAwesome, Ionicons,MaterialCommunityIcons } from '@expo/vector-icons';
import { withNavigationFocus } from 'react-navigation';
import * as Permissions from 'expo-permissions'

import styles from './styles';

class CameraPage extends React.Component {
  camera = null;

  state = {
      hasCameraPermission: null,
  };

  async componentDidMount() {
      const camera = await Permissions.askAsync(Permissions.CAMERA);
      const hasCameraPermission = (camera.status === 'granted');

      this.setState({ hasCameraPermission });
  };

  render() {
      const { hasCameraPermission } = this.state;

      if (hasCameraPermission === null) {
          return <View />;
      } else if (hasCameraPermission === false) {
          return <Text>Access to camera has been denied.</Text>;
      }

      else if (this.props.isFocused)
      {
        return (
          <View style={{ flex: 1 }}>
            <Camera style={{ flex: 1 }} type={this.state.cameraType}>

            </Camera>
            <Text> IS FOCUS </Text>
          </View>
        )
      }
  };
};
export default withNavigationFocus(CameraPage);

Приложение запускается по умолчанию в компоненте камеры отображается предварительный просмотр камеры. Как я уже сказал, когда я переключаю компонент и возвращаюсь к камере, предварительный просмотр остается черным, но отображается текст «IS FOCUS», поэтому this.props.isFocused имеет значение true.

Поэтому проблема связана с самой камерой. Но я не понимаю.

Есть идеи, откуда возникла проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...