Реагировать Навигация Вложенный стек - PullRequest
0 голосов
/ 10 октября 2018

Я хочу получить routeName активного маршрута и показать его в своем заголовке, поэтому я использую:

navigationOptions: ({ navigation }) => ({
  header: (
    <Header
      title={navigation.state.routes[navigation.state.index].routeName}
    />
  )
})

Обратите внимание, что <Header> - это пользовательский компонент, который я создаю.

Проблема в том, что я не могу получить доступ к routeName во вложенных стеках!

TypeError: TypeError: TypeError: TypeError: TypeError: undefined is not an object (evaluating 'navigation.state.routes[navigation.state.index]')

Есть предложения?

Заранее спасибо!


ОБНОВЛЕНИЕ

Мой Router.js:

const RootStack = createStackNavigator(
  {
    _Landing: {
      screen: TabNavigator(
        {
          a: Splash,
          b: Splash,
          c: createStackNavigator(
            {
              d: Services,
              e: Splash
            },
            {
              initialRouteName: "d",
              navigationOptions: ({ navigation }) => ({     // HERE is the problem
                header: (
                  <Header
                    title={
                      navigation.state.routes[navigation.state.index].routeName
                    }
                  />
                )
              }),
              transitionConfig: getSlideFromRightTransition
            }
          ),
          f: Splash,
          g: Splash
        },
        {
          tabBarPosition: "bottom",
          initialRouteName: "c",
          animationEnabled: true,
          swipeEnabled: true,
          lazy: false
        }
      )
    }
  },
  {
    initialRouteName: "_Landing",
    navigationOptions: ({ navigation }) => ({
      header: (
        <Header
          title={navigation.state.routes[navigation.state.index].routeName}
        />
      )
    }),
    transitionConfig: getSlideFromRightTransition
  }
);

Обратите внимание, что проблема в разделе // Here is the problem.Последний navigationOptions работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...