Я новичок в React Native и все еще изучаю React и JavaScript. Я тренируюсь на закусочной Экспо с FaceDetector Экспо (SDK 37) и сумел сгенерировать данные о лицах. Однако я не мог (или не знаю, как) извлечь эти данные. Моя цель на данный момент - визуализировать данные rollAngle в компоненте Text.
Вот код, который я использовал в Expo Snack и тестировал на моем Android мобильном телефоне:
import React, { useState, useEffect } from 'react';
import { Text, View } from 'react-native';
import { Camera } from 'expo-camera';
import * as FaceDetector from 'expo-face-detector'
export default function App() {
const [hasPermission, setHasPermission] = useState(null);
const [faces, setFaces] = useState([])
const faceDetected = ({faces}) => {
setFaces({faces})
console.log({faces})
}
useEffect(() => {
(async () => {
const { status } = await Camera.requestPermissionsAsync();
setHasPermission(status === 'granted');
})();
}, []);
if (hasPermission !== true) {
return <Text>No access to camera</Text>
}
return (
//<View style={{ flex: 1 }}>
<Camera
style={{ flex: 1 }}
type='front'
onFacesDetected = {faceDetected}
FaceDetectorSettings = {{
mode: FaceDetector.Constants.Mode.fast,
detectLandmarks: FaceDetector.Constants.Landmarks.all,
runClassifications: FaceDetector.Constants.Classifications.none,
minDetectionInterval: 5000,
tracking: false
}}
>
<View
style={{
flex: 1,
backgroundColor: 'transparent',
flexDirection: 'row',
}}>
<Text style= {{top:200}}> is {faces[0].rollAngle} </Text>
</View>
</Camera>
//</View>
);
}
. Консоль Snack, я вижу результаты, как это: Результаты в консоли Snack
Я попытался заменить функцию faceDetected следующим кодом:
const faceDetected = (faces) => {
setFaces(faces)
console.log(faces)
}
Затем, Консоль показывает немного отличающиеся результаты: Результаты в консоли Snack
Я пробовал оба способа визуализации rollAngle, но появилось сообщение об ошибке и было указано лицо [0] .rollAngle не определено и не является объект.
Пожалуйста, помогите, и любые предложения приветствуются. Спасибо.