I have a <Tab.Navigator> and it has four <Tab.Screen> elements. What i try to do is, to press a button inside a specific <Tab.Screen> and open an another screen on top of it. But i don’t want this another screen to have a <Tab.Screen> navigator in the <Tab.Navigator> bar.
I thought maybe there’s an option to hide, make invisible a <Tab.Screen> but i couldn’t find any documentation about it.
Is it possible to achieve this ?
3
Answers
You have to nest navigators with the stack navigator as the outer navigator and the tab navigator as the inner navigator:
https://reactnavigation.org/docs/nesting-navigators
According the official doc. You can reorganize your navigation and put the bottom tabs navigator inside the stack navigator like this
You have to reorganize your navigation structure , as documentation describe https://reactnavigation.org/docs/hiding-tabbar-in-screens
Let’s say we have 5 screens: Home, Feed, Notifications, Profile and Settings, and your navigation structure looks like this:
With this structure, when we navigate to the Profile or Settings screen, the tab bar will still stay visible over those screens.
But if we want to show the tab bar only on the Home, Feed and Notifications screens, but not on the Profile and Settings screens, we’ll need to change the navigation structure. The easiest way to achieve this is to nest the tab navigator inside the first screen of the stack instead of nesting stack inside tab navigator:
After re-organizing the navigation structure, now if we navigate to the Profile or Settings screens, the tab bar won’t be visible over the screen anymore.