I have a few screens which i want to share among multiple stacks. I found a similar problem on github but with no working solution. When navigating to a shared screen i want to be able to go back to the screen where i am navigating from.
Any ideas is greatly appriciated. I have simplified my navigation structure below.
<NavigationContainer>
<RootStack.Navigator>
{isAuth ? (
<RootStack.Screen name="Logged in" />
) : (
<RootStack.Screen name="Not logged in" />
)}
</RootStack.Navigator>
</NavigationContainer>
// First navigator for Logged in users in RootStack
<TabBottomNavigator.Navigator>
<TabBottomNavigator.Screen name="Section1">
<Stack.Navigator>
<Stack.Screen name="Screen1" />
<Stack.Screen name="Screen2" />
<Stack.Screen name="SharedScreen1" /> /* Screen to be shared among all 3 stacks */
<Stack.Screen name="SharedScreen2" /> /* Screen to be shared among all 3 stacks */
</Stack.Navigator>
</TabBottomNavigator.Screen>
<TabBottomNavigator.Screen name="Section2">
<Stack.Screen name="Screen3" />
<Stack.Screen name="Screen4" />
<Stack.Screen name="SharedScreen1" /> /* Screen to be shared among all 3 stacks */
<Stack.Screen name="SharedScreen2" /> /* Screen to be shared among all 3 stacks */
</TabBottomNavigator.Screen>
<TabBottomNavigator.Screen name="Section3">
<Stack.Screen name="Screen5" />
<Stack.Screen name="Screen6" />
<Stack.Screen name="SharedScreen1" /> /* Screen to be shared among all 3 stacks */
<Stack.Screen name="SharedScreen2" /> /* Screen to be shared among all 3 stacks */
</TabBottomNavigator.Screen>
</TabBottomNavigator.Navigator>
// Second navigator for users not logged in users in RootStack
// ...
// ...Navigator...
// ...
I am navigating to the screen with below
<TouchableOpacity onPress={() => navigation.navigate('SharedScreenX')} />