Expo-barcode-scanner приложение вылетает
В приложении есть отдельная страница, на которой я разместил expo-barcode-scanner. Суть в том, что при открытии именно этой страницы, на которой находится камера - приложение тут же вылетает. На консоль никаких ошибок не выводится. Код самого сканера брал из офф. документации.
При этом:
- Неважно, делаю я это через компонент "Camera" или через компонент "BarCodeScanner", всё равно вылетает
- Если передавать в onBarcodeScanned = undefined, то сама камера работает и запускается, но как только onBarcodeScanned = handleBarCodeScanned - программа сразу крашится.
Пробовал править ZxingBarCodeScanner.kt по этой инструкции (https://github.com/expo/expo/issues/15309), перезагрузил приложение - изменений нет, всё так же вылетает
const AdminScreen = ({navigation}) => {
const [hasPermission, setHasPermission] = useState(null);
const [scanned, setScanned] = useState(true);
const [cameraReady, setCameraReady] = useState(false);
useEffect(() => {
(async () => {
const { status } = await BarCodeScanner.requestPermissionsAsync();
setHasPermission(status === 'granted');
})();
}, []);
const onCameraReady = () => {
setCameraReady(true)
console.warn("Camera ready")
}
const handleBarCodeScanned = ({ type, data }) => {
if (cameraReady){
setScanned(true);
alert(`Bar code with type ${type} and data ${data} has been scanned!`);
}
};
if (hasPermission === null) {
return <Text>Requesting for camera permission</Text>;
}
if (hasPermission === false) {
return <Text>No access to camera</Text>;
}
return (
<View
style={{
flex: 1,
resizeMode: 'cover',
}}>
<Camera
onCameraReady={onCameraReady}
barCodeTypes={[BarCodeScanner.Constants.BarCodeType.qr]}
onBarCodeScanned={scanned ? undefined : handleBarCodeScanned}
style={{
flex:1
}}
/>
{scanned && <Button title={'Tap to Scan Again'} onPress={() => setScanned(false)} />}
</View>
);
}
P.S: Не исключаю, что ошибка максимально очевидная и тупая, начал учить реакт и js буквально неделю назад, могу легко что-то упустить
