reactjs - 在嵌套导航中移动到堆栈顶部(父屏幕)
问题描述
我有多个createStackNavigator
不同的屏幕,我在我的屏幕中使用它们,createBottomTabNavigator
所以所有屏幕都可以从其他屏幕访问,问题是当我导航到我的主屏幕时,createBottomTabNavigator
如果我打开任何其他屏幕,如联系人屏幕 createStackNavigator
,那么如果我导航在我的配置屏幕中createBottomTabNavigator
,然后如果我再次返回主屏幕,那么我仍然看到联系人屏幕(因为它在堆栈顶部)而不是看到主屏幕,我必须再次点击主页所以它带我去那里。
这是因为我使用的是嵌套导航,我不太确定如何直接导航到 Home 或任何其他屏幕,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>
);
所以我转到主页组件,然后从那里转到配置文件屏幕,然后如果转到帮助屏幕,然后如果我点击主页,它将带我到配置文件屏幕而不是主屏幕,我怎样才能确保这不会发生因为它有点混乱。我createBottomTabNavigator
在所有其他屏幕中都可以看到选项卡,所以这就是我需要直接移动到根屏幕的原因。
解决方案
推荐阅读
- c++ - 使 \page 和 \subpage 参考 doxygen 中的方法文档
- c++ - 在 C++ 中返回不正确的楼层函数值
- linux - CentOS yum 失败并出现 libcurl.so.4 错误,提示“未定义符号:libssh2_agent_disconnect”
- android - 更新 Android Room 数据库中的多个表
- php - 未捕获的 TYPO3 异常:#1472074485:表 'db.tx_sfregister_domain_model_frontenduser' 不存在...?
- python - 如何在一小时的数据框熊猫中找到平均值和最大值?
- javascript - 如何检查样式是否在元素上定义而不是继承?
- java - Java:是否可以对其实现类的客户端隐藏超级接口?
- excel - 如何使用 Powershell 关闭特定的 Excel 文件
- java - 为什么来自消息源的自定义消息不适用于请求参数验证?