Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 离开应用程序时,Expo条码扫描器会冻结(更确切地说是相机)_Javascript_React Native - Fatal编程技术网

Javascript 离开应用程序时,Expo条码扫描器会冻结(更确切地说是相机)

Javascript 离开应用程序时,Expo条码扫描器会冻结(更确切地说是相机),javascript,react-native,Javascript,React Native,我把世博会的条形码扫描仪放在标签上: return ( <View style={{ flex: 1, flexDirection: "column", justifyContent: "flex-end", }} > <BarCodeScanner onBarCodeScanned={scanned ? undefined : handleBarCodeScan

我把世博会的条形码扫描仪放在标签上:

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>
  );
它很好用。问题是,当我通过Homebutton离开应用程序并返回应用程序时,相机被冻结。应用程序没有崩溃,我可以四处导航,但相机被冻结

有没有办法唤醒摄像机?或者这到底是为什么?我试着听导航的变化,用DIDGOURCH为选项卡栏重新加载屏幕

  useEffect(() => {
    const navFocusListener = props.navigation.addListener("didFocus", () => {
      //console.log("reload");
    });

    return () => {
      navFocusListener.remove();
    };
  }, [props.navigation]);

不幸的是,这不起作用。

我遇到了一个类似的问题:我有两个单独的组件使用条形码扫描仪。从A切换到B很好。但是,从B切换回A时,A中的摄影机视图被冻结。B不是。无论我如何来回切换,A总是冻结,B似乎工作正常

显然,这是一个多年来一直存在的问题。我还没有看到世博会团队中任何人对此做出任何更新或回应

更新

我在下面的评论中发布了我创建的问题的链接,但为了方便访问,我也会发布它

这似乎是iOS中的一个bug,而不是Expo中的bug

这演示了解决方法(基本上,我们必须手动卸载条形码扫描仪/摄像头组件)。我可以确认这对我的项目是有效的


条形码扫描仪和摄像头的世博会文档已更新为callout,说明必须手动卸载这些组件,然后其他组件才能使用它们。

Hello@bsgbryan,请查看指南。发布不回答原始问题的答案是毫无用处的。取而代之的是考虑这个问题。我向世博会提交了一份关于这方面的错误报告。如果你想关注它的进度更新,请点击这里。谢谢你让我知道,@piraces。这个问题没有解决办法,因为它是世博会项目中的一个缺陷。唯一可行的步骤就是提交一份bug报告——我就是这么做的。在这里链接bug报告的最佳方式是什么,这样其他任何有类似问题的人都可以找到它?我很乐意删除我的答案,并以最有用的形式重新发布它@bsgbryan!知道这是一个bug,你可以把你的答案和你的问题以及bug报告的链接放在一起,让它清楚地表明这是库中的一个问题
  useEffect(() => {
    const navFocusListener = props.navigation.addListener("didFocus", () => {
      //console.log("reload");
    });

    return () => {
      navFocusListener.remove();
    };
  }, [props.navigation]);