【问题标题】:React native navigation v5 android back button handler反应本机导航 v5 android 后退按钮处理程序
【发布时间】:2020-07-10 15:18:26
【问题描述】:

我正在使用 React Navigation v5,我正在尝试在 routes.js 中创建一个默认的 android 后退按钮处理程序。使用通量有 backAndroidHandler 参数可以让你做到这一点。我的问题是我可以在导航 v5 中使用什么。

我知道有https://reactnavigation.org/docs/custom-android-back-button-handling/。但问题是我不想去每个屏幕都设置它。

目前的解决方案是这样的:

  useEffect(
    useCallback(() => {
      const onAndroidBack = () => {
      };

      BackHandler.addEventListener('hardwareBackPress', onAndroidBack);

      return () =>
        BackHandler.removeEventListener('hardwareBackPress', onAndroidBack);
    }, [])
  );

我的问题是,navigation v5 是否有某种解决方案,就像 Flux 那样? 有没有更好的方法来管理android后退按钮?

【问题讨论】:

    标签: android react-native button back react-navigation-v5


    【解决方案1】:

    文档在您的链接中提供的解决方案似乎是最好的选择,但我发现缺少一步。

    你可以让ScreenWithCustomBackBehavior 返回它的孩子,让它成为一个容器而不是一个组件。然后将其包裹在您需要自定义的每个屏幕上似乎并不过分。这个解决方案真的是如果你需要它发生在焦点上。如果您需要一个全局 android 后退按钮侦听器,您可以在应用的顶层注册它。

    无论普遍认可的解决方案是什么,它很可能采用容器的形式(如ScreenWithCustomBackBehavior)或在顶层注册侦听器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      相关资源
      最近更新 更多