在第二次按下时更改标签栏按钮的行为

Posted

技术标签:

【中文标题】在第二次按下时更改标签栏按钮的行为【英文标题】:Change tabbar button behaviour on second press 【发布时间】:2017-11-11 18:51:24 【问题描述】:

我在 react native 项目 (0.43.3) 中使用路由器通量

如何在第一次按下图标时切换选项卡并在第二次按下时重置此选项卡上的堆栈?

例子:

1. In: tab1
2. Press tab2-icon => switch to tab2 (scene tab2 must be showed)
3. Press tab1-icon => switch to tab1 (scene tab1 must be showed, just as it had been)
4. Press tab1-icon => switch to tab1 (scene tab 1 must be reload with a different prop)

我尝试将动作添加到 onPress <Scene onPress=() => /* CODE */ ...> 的场景中,但丢失(覆盖或替换)路由器通量标签栏自己的动作(如显示场景组件,标记为活动,更改标签栏项目的颜色)。 也许如果我可以在 onPress y 默认值中按下 tabbar 时添加操作,然后我的代码会这样做


@mantir 在 repo 中的原始问题:https://github.com/aksonov/react-native-router-flux/issues/1905

【问题讨论】:

【参考方案1】:

3.39.1 开始,您应该可以使用 onActivePress 来处理它。 正如this pullRequest 中的解释,当标签已被选中时触发!

【讨论】:

感谢保罗!!这是我一直在寻找的功能。 3.39.2 有什么问题?我一直在使用 3.38.0,我更新到 3.39.2,但我收到重复名称的错误:Failed to build DependencyGraph: @providesModule naming collision: Duplicate module name: 我的依赖项是:`“react”:“16.0.0-alpha.6”,“react-native” :“0.43.3”,“react-native-router-flux”:“3.38.0”,“react-native-vector-icons”:“^4.0.1”` 嗨!我现在不停留在 3.38.0 中,因为我现在不需要此功能。它应该链接到“重复的模块名称”。我在 react-native-vectore-icons 遇到了这样的麻烦!很高兴能帮到你✌️

以上是关于在第二次按下时更改标签栏按钮的行为的主要内容,如果未能解决你的问题,请参考以下文章

从简单的视图控制器移动到 TAB BAR 控制器

Contact Form 7 在第一次提交时不起作用,但在第二次按下 sumbit 按钮时它工作正常

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

按下时更改操作栏按钮的背景颜色

按下网页按钮时更改iOS标签栏项目名称

打开 TabBar 子视图