简体   繁体   中英

How can I open Drawer Navigator inside a Tab view which is nested inside a Switch Nav?

I am finding the docs on createDrawerNavigator pretty difficult to follow in terms of nesting navigators.

I have 2 navigators and a Drawer Nav which I am not sure where to put

A = parent SwitchNavigator

const MainNavigator = createSwitchNavigator({
  AuthLoading: AuthLoadingScreen,
  Auth: AuthStack,
  App: AppStack,
}

B = AppStack TabNavigator

On one of the tabs inside TabNavigator, I would like to open a drawer navigator.

How do I do this? Should I create a separate drawer navigator and place it inside the Switch, or should I nest it inside the TabNavigator? I have tried both approaches and I can load the View inside the drawer, but not the drawer itself.

You need to create a new drawer navigator component, and then use this one as a screen

like this

const MainNavigator = createBottomTabNavigator({
  YourScreenName: YourDrawerNavigatorComponent,
}

this article details everything https://medium.com/async-la/react-navigation-stacks-tabs-and-drawers-oh-my-92edd606e4db

Alright, wasted hours on this but I finally fixed the issue and can now open the drawer using the header button with this.props.navigation.openDrawer(); , while having the drawer inside the tab navigator like this:

const MainNavigator = createBottomTabNavigator({
  YourScreenName: YourDrawerNavigatorComponent,
}

Just update to the latest react-navigation version 3.0.0, running the following command in your project's root folder: npm i react-navigation@^3.0.0 or yarn add react-navigation@^3.0.0 , it released literally yesterday.

If you install react-navigation without specifiing a version, it will install the 2.18.2 version which has this issue!

Be sure to follow this guide after you install ( Very important! ): https://reactnavigation.org/blog/2018/11/17/react-navigation-3.0

You'll need to change a few things in your code by following the guide.

Troubleshoots : Be sure to clear caches and exit and reopen all your terminals, yes all of them.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM