当前代码:
import QRCodeScanner from 'react-native-qrcode-scanner';
function ScanScreen({ navigation }) {
return (
<SafeAreaView style={styles.screen}>
<QRCodeScanner reactivate={true} reactivateTimeout={3000}
onRead={data => navigation.navigate('Third', {target:data.data})}
/>
</SafeAreaView>
);
}
Run Code Online (Sandbox Code Playgroud)
它可以工作,但这就是我想要做的:用户可以在屏幕之间导航,其中之一是二维码扫描仪。扫描时,我需要对扫描仪进行去抖处理,这样它就不会继续生成 onRead 事件。用户可以 a) 在扫描屏幕中开始扫描,而无需读取 QR 码,然后手动导航到另一个屏幕。b) 读取二维码并自动移至另一个屏幕进行处理,然后返回再次扫描。因此,我需要在一段合理的时间后重新启用扫描仪。我不能只是将 reactivate 设置为 false,因为这样 QR 扫描仪将处于非活动状态,直到我重新启动应用程序。问题是,当用户停留在另一个屏幕时,QR 扫描仪会在超时后重新激活,并在不需要时尝试扫描。我理想的做法是在用户不在扫描屏幕中时停用 QR 扫描仪,并在用户进入扫描屏幕时使用上述参数重新激活它。有什么办法可以做到这一点吗?谢谢!