我有多个 createStackNavigator
用于不同的屏幕,我在 createBottomTabNavigator
中使用它们,因此所有屏幕都可以从其他屏幕访问,问题是当我在 {{1} 中导航到主屏幕时}} 如果我打开任何其他屏幕,例如联系人屏幕 createBottomTabNavigator
,然后如果我导航到 createStackNavigator
中的个人资料屏幕,然后如果我再次返回主屏幕,则不会看到在主屏幕上,我仍然可以看到联系人屏幕(因为它位于堆栈顶部)我必须再次单击主页才能将我带到那里。
这是因为我使用嵌套导航,我不太确定如何直接导航到主屏幕或 createBottomTabNavigator
中的任何其他屏幕,而不是 createBottomTabNavigator
中的任何屏幕。
这是我的意思的一个例子:
createStackNavigator
所以我转到主页组件,然后从那里转到配置文件屏幕,然后如果转到帮助屏幕,然后如果我在主页上单击返回,它将带我到配置文件屏幕而不是主屏幕,我如何确保这不会发生,因为它有点令人困惑。我在所有其他屏幕中都可以看到 const HomeStack = createStackNavigator();
const Home = () => {
return (
<HomeStack.Navigator
initialRouteName="Home"
screenOptions={{
headerShown: false,
}}
>
<HomeStack.Screen name="Home" component={HomeScreen} />
<HomeStack.Screen
name="SearchScreen"
component={SearchScreen}
/>
<HomeStack.Screen name="ContactScreen" component={ContactScreen} />
<HomeStack.Screen name="FavoriteScreen" component={FavoriteScreen} />
</HomeStack.Navigator>
);
};
const HelpStack = createStackNavigator();
const Help = () => {
return (
<HelpStack.Navigator
initialRouteName="Help"
screenOptions={{
headerShown: false,
}}
>
<HelpStack.Screen
name="SearchScreen"
component={SearchScreen}
/>
<HelpStack.Screen name="ContactScreen" component={ContactScreen} />
<HelpStack.Screen name="FavoriteScreen" component={FavoriteScreen} />
</HelpStack.Navigator>
);
};
const ProfileStack = createStackNavigator();
const Profile = () => {
return (
<ProfileStack.Navigator
initialRouteName="CreateProfile"
screenOptions={{
headerShown: false,
}}
>
<ProfileStack.Screen
name="SearchScreen"
component={SearchScreen}
/>
<ProfileStack.Screen name="ContactScreen" component={ContactScreen} />
<ProfileStack.Screen name="FavoriteScreen" component={FavoriteScreen} />
</ProfileStack.Navigator>
);
};
const Tab = createBottomTabNavigator();
const MainTabs = () => (
<Tab.Navigator
initialRouteName="Home"
>
<Tab.Screen
name="Home"
component={Home}
/>
<Tab.Screen
name="Help"
component={Help}
/>
<Tab.Screen
name="Profile "
component={Profile}
/>
</Tab.Navigator>
);
选项卡,所以这就是我需要直接移动到根屏幕的原因。