【问题标题】:Show back button on root navigator and affect child navigator in React Navigation在根导航器上显示后退按钮并影响 React Navigation 中的子导航器
【发布时间】:2019-11-18 04:36:13
【问题描述】:

我正在尝试创建以下线框:

为此,我使用了几个嵌套导航器:

A:由于总是需要顶部标题,因此我首先创建了一个带有单个屏幕的堆栈导航器。

B:这是一个底部标签导航器,有 3 个屏幕。如果有人点击中间的标签,你会得到一个网格屏幕“C”。

C:网格屏幕是一个堆栈导航器。如果您触摸选项 B(例如),您会看到一个新屏幕,它是一个顶部选项卡导航器。

D:这是最后一个顶部选项卡导航器。

我的问题是:

  1. 这是正确的做事方式吗?
  2. 当我到达屏幕 D 时,我需要 顶部标题显示一个后退按钮,也用于那个后退 C画面导航器上的“返回”按钮,然后消失 再次。我怎样才能做到这一点?

谢谢!

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

    就个人而言,我认为你的做法是错误的。由于 react-navigation 不包含 tabNavigator 中的标题,因此我会将您的选项卡包装在堆栈中。

    从那里,我将拥有 3 个stackNavigators,每个选项卡一个,其中仅包含必要的屏幕。

    您的中间选项卡的stackNavigator 将只包含一个带有 6 个按钮的主/初始容器/组件,以及您可以导航到的 6 个容器/组件中的每一个。按下每个按钮只需导航到相应的容器/组件即可显示其内容。

    同样,我不会为您的顶部标签栏创建tabNavigator。我只需要一个带有三个按钮的容器/组件,或者类似于分段控件的东西,它可以选择性地在该屏幕的下部显示正确的容器/组件。我们在应用中的多个位置执行此操作。

    希望这会有所帮助,如果我放在这里的任何内容没有足够的意义,请告诉我。

    [编辑] - 删除了不正确的标题信息。

    【讨论】:

    • 您好,Doug,感谢您的回答。我的印象是选项卡导航器没有标题。这只是它不是默认值吗?标签导航器上的文档没有提到标题。
    • 我认为您可以使用相同的道具使标题显示在选项卡导航器上,但如果没有,则将选项卡导航器包装在堆栈导航器中是获取标题的一种方法。另一种选择是在标签组件上放置一个假标题。不过,将标签包装在堆栈中可能更容易。我会尝试将您在堆栈导航中使用的道具添加到选项卡导航中以查看是否有效,但我个人希望它可以。
    • 我测试过,不,不可能。也用谷歌搜索了它stackoverflow.com/a/47217006/720175
    • 对问题 #2 有任何想法吗?谢谢!
    • @Sandy 我编辑我的答案更正确。它应该回答你的#2。
    猜你喜欢
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 2017-11-06
    • 2020-11-02
    • 1970-01-01
    相关资源
    最近更新 更多