Я решил свою проблему, если кто-нибудь видит здесь, как я этого добился -
Моя цель ->
Нажмите на главном экране -> Действия с вкладками -> при нажатии любой вкладки новый экран
в моем app.js я создал навигацию следующим образом -
const TabNavigator = createBottomTabNavigator({
HomeScreen: {
screen: HomeScreen
},
LinksScreen: {
screen: LinksScreen
},
LoginScreen: {
screen: SurveyScreen,
},
},
{
initialRouteName : 'HomeScreen' ,
});
const RootStack1 = createStackNavigator({
TabNavigator: {
screen: TabNavigator,
},
CaptureModal: {
screen: LoginScreen,
navigationOptions: {
gesturesEnabled: false,
},
},
}, {
headerMode: 'none',
mode: 'modal',
headerLeft: null
});
const mainStack = createStackNavigator({
InsideApp: {
screen: MainScreen,
},
StartScreen: {
screen: RootStack1,
},
} ,{
headerMode: 'none',
headerLeft: null
},);
const AppNavigator = createAppContainer(mainStack);
export default AppNavigator;
Теперь при нажатии на третью вкладку (SurveyScreen) появится окно «Мой модальный экран», чтобы добиться того, чтобы на экране обзора все, что мне нужно было сделатьбыло переопределить функцию didmount и оттуда открыть модальное -
componentDidMount() {
console.log('didmount called.');
this.props.navigation.navigate('CaptureModal')
}
Для перехода назад из модального режима на вкладку я использовал stackreset -
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'TabNavigator' })],
});
и щелчок назад -
onPress={ () => this.props.navigation.dispatch(resetAction)