Stacknavigator, содержащий навигатор с вкладками, игнорирует один из маршрутов - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть StackNavigator, который содержит Навигатор с вкладками (с двумя вкладками) и один маршрут CreateReviewsScreen, которого нет в Навигаторе с вкладками.Когда я пытаюсь вернуться назад от CreateReviewsScreen к навигатору с вкладками, я не могу этого сделать.Я полагаю, что это потому, что единственный маршрут CreateReviewsScreen игнорируется при построении.

В навигационном контейнере моего приложения есть только навигатор с вкладками, "Tabs".«CreateReviewScreen» отсутствует.Длина на фотографии ниже должна быть 2, а не 1.

enter image description here

Соответствующие разделы кода:

TabNav.js

import { createBottomTabNavigator, createStackNavigator } from 'react-navigation';
import { ReviewsScreen, VenuesScreen, CreateReviewsScreen } from '../scenes';
import { APP_COLORS } from '../styles/Global';

const mainTabs = createBottomTabNavigator(
  {
    Reviews: ReviewsScreen,
    Venues: VenuesScreen
  },
  {
    initialRouteName: 'Reviews',
    backBehavior: 'Reviews',
    tabBarOptions: {
      activeTintColor: APP_COLORS.FORE,
      labelStyle: {
        fontSize: 18,
        textAlign: 'center'
      },
      style: {
        backgroundColor: APP_COLORS.PRI_LGHT,
      },
    }
  }
);

export default createStackNavigator({
  Tabs: mainTabs,
  CreateReviews: CreateReviewsScreen
});

Navigation.js

import { createStackNavigator, createSwitchNavigator } from 'react-navigation';
import { createAppContainer } from '@react-navigation/native';
import { LoggedOutScreen, LoginScreen, RegisterScreen, UserProfileScreen } from './scenes/index';
import TabNav from './Drawer/TabNav';


const AuthStack = createStackNavigator({
  LoggedOut: { 
   screen: LoggedOutScreen, 
   navigationOptions: {
     header: null
   }
  },
  Login: {
    screen: LoginScreen, 
    navigationOptions: {
      title: 'Login'
    }
  },
  Register: {
    screen: RegisterScreen,
    navigationOptions: {
      title: 'Sign up!'
    }
  },
  UserProfile: {
    screen: UserProfileScreen,
    navigationOptions: {
      title: 'Your Profile'
    }
  }
});

export default createAppContainer(createSwitchNavigator(
  {
    Main: TabNav,
    Auth: AuthStack
  }, 
  {
    initialRouteName: 'Auth',
  }
));

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Оказывается, я не наблюдал правильную ошибку.Поведение назад к предыдущему элементу стека происходило, но была 10-секундная задержка, вызванная удаленной отладкой в ​​Expo.Я просто не стал ждать достаточно долго, прежде чем перезапустить приложение, чтобы увидеть, что это была проблема.Отключение удаленной отладки заставило кнопку назад работать мгновенно.

0 голосов
/ 27 февраля 2019

Попробуйте this.props.navigation.goBack (null)

...