tabnavigator внутри stacknavigator

const Stylelist = StackNavigator({
  Login: {
    screen: LoginScreen,
    navigationOptions: ({ navigation }) => ({
      header: null,
    }),
  },
  Register: {
    screen: RegisterScreen,
    navigationOptions: ({ navigation }) => ({
      header: null,
    }),
  },
  Home: {
    screen: HomeScreen,
    navigationOptions: ({ navigation }) => ({
      title: 'Home',
    }),
  },
  Profile: {
    screen: TabNavigator({
      Profile: {
        screen: ProfileScreen,
        navigationOptions: ({ navigation }) => ({
          title: 'Profile',
        }),
      },
      Friends: {
        screen: FriendsScreen,
        navigationOptions: ({ navigation }) => ({
          title: 'My Friends',
        }),
      },
    }),
    navigationOptions: ({ navigation }) => ({
      title: 'Home',
    }),
  },
  ProfileDetail: {
    screen: ProfileDetailScreen,
    navigationOptions: ({ navigation }) => ({
      title: 'Profile Detail',
    }),
  },
});

что, если я хочу перейти к ProfileDetailScreen из ProfileScreen? скажем, у меня есть touchableOpacity внутри ProfileScreen, и я хочу перейти к ProfileDetailScreen.

спасибо

Обновление: мне удалось использовать StackNavigator внутри TabNavigator с headerMode None в StackNavigator внутри TabNavigator, в первый раз он выглядит так же, но если вы вернетесь из ProfileDetailScreen, он вернется к HomeScreen (потому что кнопка «Назад» находится в StackNavigator в первой строке)


person Elbert Valdian    schedule 09.07.2018    source источник


Ответы (1)


Вы можете перейти к ProfileScreen следующим образом: this.props.navigation.navigate("Profile"). «Профиль» — это ключ к определению страницы StackNavigator. Подробная информация здесь

Также я предлагаю использовать последнюю версию реагировать навигацию (v2)

person erkan    schedule 09.07.2018
comment
я знаю, что нужно использовать this.props.navigation.navigate(Profile), но вы не можете этого сделать, потому что, если вы объявите профиль для родителя, дочерний элемент не сможет его получить. я надеюсь, вы понимаете, что я имею в виду - person Elbert Valdian; 09.07.2018