【发布时间】:2020-04-09 09:17:53
【问题描述】:
我将这个来自 Expo 的 BarCodeScanner 放在一个选项卡中:
return (
<View
style={{
flex: 1,
flexDirection: "column",
justifyContent: "flex-end",
}}
>
<BarCodeScanner
onBarCodeScanned={scanned ? undefined : handleBarCodeScanned}
barCodeTypes={[BarCodeScanner.Constants.BarCodeType.ean13]}
style={StyleSheet.absoluteFillObject}
/>
{scanned && (
<Button title={"Tap to Scan Again"} onPress={() => setScanned(false)} />
)}
</View>
);
扫描后,我会重定向到这样的页面:
const handleBarCodeScanned = ({ type, data }) => {
setScanned(true);
props.navigation.navigate("EanProduct", {
ean: data,
});
};
它工作正常。问题是,当我通过 Homebutton 离开应用程序并返回应用程序时,相机被冻结。应用没有崩溃,我可以导航,但相机卡住了。
是否有解决方法来唤醒相机?或者为什么会发生这种情况?我尝试收听导航更改以使用标签栏的 didFocus 重新加载屏幕
useEffect(() => {
const navFocusListener = props.navigation.addListener("didFocus", () => {
//console.log("reload");
});
return () => {
navFocusListener.remove();
};
}, [props.navigation]);
很遗憾,这不起作用。
【问题讨论】: