I tried to add the try / catch method but to no use, maybe I added it in a wrong manner?
Objective: Open camera and scan an image for text, if it has any, the text will display below 'Text Recognition'
The only place where I wrote code was in App.js :
import React, {useEffect, useState} from 'react';
import { launchCamera, launchImageLibrary } from 'react-native-image-picker';
import TextRecognition from 'react-native-text-recognition';
import {
SafeAreaView,
StatusBar,
Text,
View,
} from 'react-native';
const App = () => {
const [image, setImage] = useState(null);
const [text, setText] = useState(null);
useEffect(() => {
launchCamera({}, setImage); //launch camera (active)
}, []);
// useEffect(() => {
// launchImageLibrary({}, setImage); //i can launch library using this
// }, []);
useEffect(() => {
(async () => {
if (image) {
const result = await TextRecognition.recognize(image.assets[0].uri);
console.log(result);
setText(result);
}
})();
},[image]);
return (
<SafeAreaView>
<StatusBar>
<View>
<Text>Text Recognition</Text>
{text ? <Text>{text}</Text> : null}
</View>
</StatusBar>
</SafeAreaView>
);
};
export default App;
Try wrapping the await TextRecognition.recognize(...) call with a try/catch:
useEffect(() => {
(async () => {
if (image) {
try {
const result = await TextRecognition.recognize(image.assets[0].uri);
console.log(result);
setText(result);
} catch (error) {
console.error(error);
}
}
})();
},[image]);