React Navigation:当按下图标时,如何防止使用“材料底部选项卡导航器”导航到未安装的选项卡屏幕?

时间:2020-06-11 16:20:46

标签: react-native react-navigation

我在这里对React Native开发人员有疑问。我使用createMaterialBottomTabNavigator,我希望选项卡栏中的一个按钮可以打开屏幕,而不是在选项卡中,而是在堆栈导航器中。根据文档,我们可以使用目标屏幕中的useEffect挂钩来防止默认行为,并从那里进行导航。这是目标屏幕中的代码:

useEffect(() => {
    const unsubscribe = navigation.addListener("tabPress", (e) => {
      // Prevent default behavior of tab press in bottom navigator
      e.preventDefault();
      // Open screen in stack navigator, not in tab navigator
      navigation.navigate("TargetScreen");
    });
    return unsubscribe;
  }, [navigation]);

除了一个细节外,它运作良好:物料底部选项卡导航器在首次聚焦之前不会安装其路线,因此,当我第一次按下按钮时,它会在选项卡中打开屏幕。之后,当我按下相同的按钮时,它将按预期在堆栈导航器中打开屏幕。

有人知道该问题的解决方法吗?有没有一种方法可以强制“材料”选项卡在聚焦之前安装路线?还是在屏幕首次安装时调用挂钩的方法?

谢谢!

0 个答案:

没有答案