React native &引用;重置";stackNavigator,在单击另一个底部选项卡Navigator选项卡后
我目前有以下导航模式: BottomTabNavigatorReact native &引用;重置";stackNavigator,在单击另一个底部选项卡Navigator选项卡后,react-native,react-navigation,bottomnavigationview,React Native,React Navigation,Bottomnavigationview,我目前有以下导航模式: BottomTabNavigator export const HomePageBottomNavigator = createBottomTabNavigator( { CardListStack: { screen: CardListStack, navigationOptions: () => ({ title: 'My Cards' }) }, ClassList
export const HomePageBottomNavigator = createBottomTabNavigator(
{
CardListStack: {
screen: CardListStack,
navigationOptions: () => ({
title: 'My Cards'
})
},
ClassListStack: {
screen: ClassListStack,
navigationOptions: () => ({
title: 'My classes'
})
}
})
CardListStack
export const CardListStack = createStackNavigator(
{
CardListPage: {
screen: CardListPage
},
CardPage: {
screen: CardPage,
headerMode: 'none'
}
},
{
headerMode: 'none',
navigationOptions: {
headerVisible: false
},
initialRouteName: 'CardListPage'
});
export const ClassListStack = createStackNavigator(
{
ClassesListPage: {
screen: ClassesListPage
},
ClassPage: {
screen: ClassPage,
headerMode: 'none'
},
CardPage: {
screen: CardPage,
headerMode: 'none'
}
},
{
headerMode: 'none',
navigationOptions: {
headerVisible: false
},
initialRouteName: 'ClassesListPage',
});
ClassListStack
export const CardListStack = createStackNavigator(
{
CardListPage: {
screen: CardListPage
},
CardPage: {
screen: CardPage,
headerMode: 'none'
}
},
{
headerMode: 'none',
navigationOptions: {
headerVisible: false
},
initialRouteName: 'CardListPage'
});
export const ClassListStack = createStackNavigator(
{
ClassesListPage: {
screen: ClassesListPage
},
ClassPage: {
screen: ClassPage,
headerMode: 'none'
},
CardPage: {
screen: CardPage,
headerMode: 'none'
}
},
{
headerMode: 'none',
navigationOptions: {
headerVisible: false
},
initialRouteName: 'ClassesListPage',
});
所以基本上我有两个标签:第一个是关于卡片的,你可以看到你的卡片列表,然后点击查看特定卡片的详细信息。在第二个例子中,你可以找到你的类,特别是一个类,然后点击查看它的卡片
我面临的问题是,当我在CardListStack中时,我执行以下操作:打开一张卡,转到ClassListStack,然后返回CardListStack。。。这张卡还开着。当我打开一个类详细信息,更改堆栈,然后返回时,也会发生同样的事情。当我移回堆栈时,有什么方法可以“重置”堆栈吗?我相信这是
堆栈导航器的预期行为。很多时候,您希望用户能够在特定选项卡的导航中尽可能地向下移动,并且当他们离开该选项卡并返回时,他们不会希望所有进度都丢失
然而,当我导航到一个选项卡时,我也尝试过让它“重置”,并发现解决方案令人沮丧
以下是几种方法:
- 不要调用
navigation.navigate('CardListStack')
尝试更具体地描述您想要的确切屏幕,我相信这就是CardListPage
因此,navigation.navigate('CardListPage')
可能会完全按照您的要求进行操作。根据不同版本的react navigation
,我遇到了很多问题
- 使用
navigation.poptoop()
。这会让你回到游戏的顶端
你现在的路线。所以在导航回后调用此
CardListStack
将弹出您回到CardListPage
,我认为这是
你想要什么但是,这并不理想,因为用户将看到
卡片被解除并移回原始位置的动画
列表。
- 您还可以进入导航操作,看看可以在那里做些什么,如回答的那样
希望这些帮助之一 选项卡导航器中的所有选项卡将立即呈现,并且在切换选项卡时不会重置。您需要在tabnavigator配置上使用lazy属性,使选项卡仅在激活或单击时呈现
像这样:
export const HomePageBottomNavigator = createBottomTabNavigator(
{
CardListStack: {
screen: CardListStack,
navigationOptions: () => ({
title: 'My Cards'
})
},
ClassListStack: {
screen: ClassListStack,
navigationOptions: () => ({
title: 'My classes'
})
}
},
{
lazy:true
}
)