【问题标题】:Expo BarCodeScanner freezes (better said, the camera) when leaving the app离开应用程序时,Expo BarCodeScanner 冻结(更好的说法是相机)
【发布时间】: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]);

很遗憾,这不起作用。

【问题讨论】:

    标签: javascript react-native


    【解决方案1】:

    我遇到了类似的问题:我有两个使用 BarCodeScanner 的独立组件。从A切换到B很好。但是,从 B 切换回 A 时,A 中的摄像机视图被冻结。 B 不是。无论我来回切换多少,A总是冻结,B似乎工作正常。

    显然,这多年来一直是个问题。我还没有看到 Expo 团队中任何人对此的任何更新或回复。

    更新

    我在下面的评论中发布了指向我创建的问题的链接,但我也会将其发布here,以便于访问。

    这似乎是 iOS 中的错误,而不是 Expo。

    Snack 演示了解决方法(本质上,我们必须手动卸载 BarCodeScanner/Camera 组件)。我可以确认这对我的项目有效。

    已更新 BarCodeScanner 和 Camera 的 Expo 文档,指出必须手动卸载这些组件,然后其他组件才能使用它们。

    【讨论】:

    • 您好@bsgbryan,请查看How do I write a good answer? 指南。发布不回答原始问题的答案根本没有用。相反,请考虑对问题进行投票或set a bounty
    • 我向 Expo 提交了一份关于此问题的错误报告。这是link,如果您想关注它以获取进度更新。
    • 谢谢你告诉我,@piraces。这个问题没有解决方案,因为它是 Expo 项目中的一个错误。唯一可用的步骤是提交错误报告 - 我这样做了。在此处链接该错误报告以便其他有类似问题的人可以找到它的最佳方式是什么?
    • 我很高兴删除我的答案并以最有帮助的任何形式重新发布
    • 太棒了@bsgbryan!知道这是一个错误,您可以留下您的问题的答案和错误报告的链接,以明确它是库的问题
    猜你喜欢
    • 2016-06-20
    • 1970-01-01
    • 2023-01-25
    • 2021-12-17
    • 2012-03-29
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多