gpt4 book ai didi

android - 双击 BottomTabNavigator 的奇怪行为 - React Navigation

转载 作者:行者123 更新时间:2023-11-28 23:21:55 24 4
gpt4 key购买 nike

我使用 React Navigation 在我的移动应用程序中进行导航,我的导航结构如下:

const AccountStack = createStackNavigator(
{
Account: AccountView,
...

},
{
initialRouteName: 'Account',
headerMode: 'screen',
....
}
)

const SearchUsersStack = createStackNavigator(
{
SearchUsers: SearchUsersView,
UserProfile: UserProfileView,
FriendsOfUser: FriendsOfUserView
},
{
...
}
)

const AccountModalStack = createStackNavigator(
{
AccountStack: AccountStack,
SearchUsersStack: SearchUsersStack,
},
{
initialRouteName: 'AccountStack',
headerMode: 'none',
mode: 'modal',

}
)

const MainApp = createBottomTabNavigator(
{
MainHome: HomeStack,
MainPlay: PlayStack,
MainAccount: AccountModalStack
},
{
...
}
)

如果我在“搜索用户”堆栈中(例如,在 SearchUserView 中)并单击底部选项卡导航器中的“帐户”图标,堆栈将正确关闭,我将返回到我的“帐户”查看。

但是,如果我在我的 AccountStack 的其中一条 route 并单击底部选项卡导航器中的“帐户”图标,则堆栈不会消失。因此,如果我在帐户堆栈中很远,我必须使用后退箭头返回。

为什么它在我在 SearchUserStack 中时有效,但在我的 AccountStack 中却无效?

希望得到帮助!

谢谢!

维克多

最佳答案

您可以覆盖点击标签时发生的事情,您可以通过标签栏中每个导航器的 navigationOptions 来实现。

const AccountModalStack = createStackNavigator(
{
AccountStack: AccountStack,
SearchUsersStack: SearchUsersStack,
// ...
},
{
initialRouteName: 'AccountStack',
navigationOptions: {
tabBarOnPress: ({ navigation }) => {
navigation.navigate({
routeName: 'AccountStack', // navigates to the initial route
action: navigation.popToTop(), // go to the top of the stack of that route
})
},
// ...
},
// ...
}
)

默认情况下,选项卡可能会尝试简单地导航到初始路线,而不重置堆栈。

关于android - 双击 BottomTabNavigator 的奇怪行为 - React Navigation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59534651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com