Как найти текущий экран / маршрут во вложенной Tab.Navigator - PullRequest
1 голос
/ 03 августа 2020

У меня есть настраиваемая панель вкладок для Tab.Navigator, которая должна иметь другое действие при выборе одной из вкладок в зависимости от текущего маршрута в компоненте Stack Navigator для этой вкладки.

Как Могу ли я проверить текущий отображаемый Stack.Screen внутри этой настраиваемой панели вкладок? Попытка использовать ловушку getRoute показывает мне только родительский экран, на котором размещен этот Tab.Navigator.

<Tab.Navigator tabBar={(props) => <BottomTabBar {...props} />}>
      <Tab.Screen
        name="Home"
        component={HomeStack}
        initialParams={{showSuccess: route.params?.showSuccess}}
      />
      <Tab.Screen name="Alternate" component={AlternateScreen} />
    </Tab.Navigator>

Я не могу передать значение с помощью tabBarOptions, поскольку я не знаю, каким будет выбранный маршрут при создании панели вкладок.

1 Ответ

0 голосов
/ 05 августа 2020

Я закончил тем, что отслеживал текущий экран за пределами навигатора, так как встроенный Tab Navigator не сохранял ссылку на вложенные экраны в Stack Navigator, как я надеялся.

Только Мне нужно было определить разницу между двумя экранами, и мой грубый прием заключался в том, чтобы иметь ссылку на текущий экран в хуке контекста и обновлять это значение в хуке useEffect, когда соответствующий экран был смонтирован.

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