React原生导航v5安卓后退按钮处理程序



我使用的是react navigation v5,我试图在routes.js中制作一个默认的android后退按钮处理程序。使用flux,有backAndroidHandler参数可以让你做到这一点。我的questios是我可以在导航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后退按钮?

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

您可以使ScreenWithCustomBackBehavior返回其子级,使其成为容器而不是组件。然后,将它包装在每个需要自定义的屏幕上似乎并不过分。如果你需要集中注意力,那么这个解决方案就是真的。如果你需要一个全局android后退按钮监听器,你可以在应用程序的顶级注册它。

无论达成一致的解决方案是什么,它都很可能采用容器(如ScreenWithCustomBackBehavior(或顶级注册侦听器的形式。

最新更新