Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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
React native 反应导航:当按下图标时,如何防止使用物料底部选项卡导航器导航到未安装的选项卡屏幕?_React Native_React Navigation - Fatal编程技术网

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

React native 反应导航:当按下图标时,如何防止使用物料底部选项卡导航器导航到未安装的选项卡屏幕?,react-native,react-navigation,React Native,React Navigation,我有一个问题要问本地开发人员。我使用createMaterialBottomTabNavigator,我希望选项卡栏中的一个按钮可以打开一个屏幕,而不是在选项卡中,而是在堆栈导航器中。根据文档,我们可以使用目标屏幕中的useEffect挂钩来防止默认行为,并从那里进行导航。下面是我在目标屏幕中的代码: useEffect(() => { const unsubscribe = navigation.addListener("tabPress", (e) => {

我有一个问题要问本地开发人员。我使用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]);
它工作得很好,除了一个细节:Material Bottom Tab Navigator在路线第一次聚焦之前不会装载路线,所以我第一次按下按钮时,它会在一个选项卡中打开屏幕。之后,当我按下相同的按钮时,它会按预期在堆栈导航器中打开屏幕

有人知道解决这个问题的方法吗?有没有办法强制“材质”选项卡在路线聚焦之前安装路线?还是在屏幕第一次安装时调用钩子的方法

谢谢