每次选择标签栏项目时如何重置导航堆栈?

Posted

技术标签:

【中文标题】每次选择标签栏项目时如何重置导航堆栈?【英文标题】:How to reset navigation stack each time Tab Bar item is selected? 【发布时间】:2018-05-27 19:05:52 【问题描述】:

所以,每次从标签导航中选择标签时,我都需要重置导航堆栈。 现在它的工作原理是这样的:

用户在选项卡 A -> 在选项卡 A 上打开了新屏幕(即新闻) -> 选择了选项卡 B -> 选择了选项卡 A 并返回到上次打开的屏幕(新闻)而不是返回到选项卡 A .

每次用户选择新标签时,我都需要更改最后一步并重置打开的屏幕。

我知道我可以使用的 API 项目很少,例如 poppopToRootresetTo,但我不知道如何正确使用它。

谁能给我一个我可以使用它的例子吗?

提前致谢!

【问题讨论】:

【参考方案1】:

Listen 到BottomTabSelected 事件并调用this.props.navigator.popToRoot

【讨论】:

您好,感谢您的回答。我想跟进:是否可以使用popToRoot 将堆栈重置到某个选项卡? 在 v2 中,您可以使用 popTo 弹出到特定组件

以上是关于每次选择标签栏项目时如何重置导航堆栈?的主要内容,如果未能解决你的问题,请参考以下文章

反应导航5从堆栈导航器中隐藏标签栏

如何停止加载标签栏项目选择的视图?

Swift:如何通过按导航栏按钮访问标签栏项目

如何展开到导航堆栈上的第一个视图控制器

在标签栏应用程序中重置以前的导航控制器

按下标签栏项目时如何关闭视图?