【问题标题】:Calling Tab Navigator inside a component screen在组件屏幕中调用 Tab Navigator
【发布时间】:2019-07-24 16:58:35
【问题描述】:

我正在关注 react-navigation v3。根据规则,所有路由/屏幕都应通过 createAppContainer 传递。有什么方法可以让某个屏幕 A 包含 createMaterialTopNavigator 作为具有两个屏幕 B 和 C 的子屏幕,并且可以将屏幕 A 传递到 App.js 的 createAppContainer 中?

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

    该应用需要一个createAppContainer,您可以将导航器用作屏幕。 例如:

     const BottomTabNavigator = createBottomTabNavigator({
           Stack1: {
               screen: Stack1,
           },
           Stack2: {
               screen: Stack2,
           },
           Stack3: {
               screen: Stack3
           }
        })
    
    const authenticationSwitch = createSwitchNavigator({
       LoginScreen: {
           screen: LoginScreen,
       },
       LoadingScreen: {
           screen: LoadingScreen,
       },
       BottomTabNavigator: {
           screen: BottomTabNavigator
       }
    })
    
    
    export default createAppContainer(authenticationStack)
    

    编辑。

    抱歉,是的,我不明白你的问题。

    要实现这样的行为,您可以使用您的customHeader 创建一个 StackNavigator,并从中生成一个子类 `createMaterialTopNavigator。

    如果标题是开箱即用的静态标题,这将起作用,但如果您需要在 topNavigator 中有嵌套子项,则必须根据当前导航状态动态更改标题

    【讨论】:

    • 也许你没有得到我的问题。就像在 v2 中一样,我们能够定义一个自定义标题组件,然后在其下方定义一个标签导航,在标题组件内有两个屏幕(将标题作为父组件,将标签作为子导航器),我想在 v3 中实现这样的事情.这可能吗?
    • 我编辑了我的答案,看看这是否对您有帮助,或者您是否需要澄清一下
    • 你能帮我解决我的另一个问题吗?您正在解释的事情,您可能会正确地从我需要的那个问题中理解。 stackoverflow.com/questions/57134398/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2018-01-03
    • 1970-01-01
    • 2020-03-24
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多