首页 > 解决方案 > 不同堆栈导航器中的相同屏幕

问题描述

假设我有 3 个堆栈导航器(以底部选项卡为基础)。并且那些 3 堆栈导航器共享同一个可导航的屏幕。

是否可以在所有 3 个堆栈导航器中共享相同的标签和屏幕,如下所示?或者我应该创建 3 个单独的标签和屏幕 Profile1、Profile2、Profile3?一般的做法是什么?

另外,如果我在不同的堆栈中共享同一个屏幕,是否有任何“陷阱”或奇怪的行为?

注意:我正在使用反应导航4.0.10

const Stack1 = createStackNavigator(
  {
    Stack1: Home1,
    Profile: Profile
  }
);

const Stack2 = createStackNavigator(
  {
    Stack2: Home2,
    Profile: Profile
  }
);


const Stack3 = createStackNavigator(
  {
    Stack3: Home3,
    Profile: Profile
  }
);

const AppNavigator = createBottomTabNavigator({
    Bottom1: Stack1,
    Bottom2: Stack2,
    Bottom3: Stack3
  }

标签: react-nativereact-navigation

解决方案


你可以做

const Stack1 = createStackNavigator(
  {
    Stack1: Home1,
    Profile1: Profile
  }
);

const Stack2 = createStackNavigator(
  {
    Stack2: Home2,
    Profile2: Profile
  }
);


const Stack3 = createStackNavigator(
  {
    Stack3: Home3,
    Profile3: Profile
  }
);

const AppNavigator = createBottomTabNavigator({
    Bottom1: Stack1,
    Bottom2: Stack2,
    Bottom3: Stack3
  }

推荐阅读