【发布时间】:2020-02-20 10:42:31
【问题描述】:
当前代码:
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>
);
}
它有效,但这是我想做的: 用户可以在屏幕之间导航,其中之一是二维码扫描仪。 扫描时,我需要对扫描仪进行去抖动处理,这样它就不会继续生成 onRead 事件。用户可以 a) 在扫描屏幕中开始扫描而不读取 QR 码并手动导航到另一个屏幕。 b) 读取 QR 并自动移动到另一个屏幕进行处理,然后返回再次扫描。 出于这个原因,我需要在一段合理的时间后重新启用扫描仪。 我不能只将 reactivate 设置为 false,因为 QR 扫描仪在我重新启动应用程序之前处于非活动状态。 问题是当用户停留在另一个屏幕时,QR 扫描仪会在超时后重新激活,并在不需要时尝试扫描。我最理想的做法是在用户不在扫描屏幕时停用 QR 扫描仪,并在用户进入扫描屏幕时使用上述参数重新激活它。 有没有办法做到这一点?谢谢!
【问题讨论】:
-
你可以做的是在调用 onRead 关闭模态时将 QRCodeScanner 放入模态,因此它只会读取一次数据
标签: react-native qr-code