Могу ли я объединить два навигатора в React Navigation с общими экранами? - PullRequest
0 голосов
/ 15 октября 2019

Я хочу использовать два разных типа навигаторов в одном приложении с React Navigation: BottomTabNavigator и DrawerNavigator. Вы могли видеть BottomTabNavigator как компактный / быстрый навигатор и DrawerNavigation как расширенный навигатор. Это означает, что все экраны TabNavigator также будут в DrawerNavigator, но у DrawerNavigator есть некоторые дополнительные экраны, которых нет в TabNavigator.

Моя текущая ситуация такова:

const TabNavigation = createBottomTabNavigator({
  Deals: DealsScreen,
  Vouchers: VouchersScreen,
  Contact: ContactScreen
});

const Drawer = createDrawerNavigator({
  Deals: TabNavigation,
  Vouchers: TabNavigation,
  Contact: TabNavigation
});

export default Drawer;

Этот тип работает, но в этой ситуации первый элемент DrawerNavigator всегда активен;Навигатор сделок, потому что это начальный маршрут. Теперь я всегда нахожусь в навигаторе «Сделки». Теперь я вижу оба навигатора (ящик и вкладка) и могу переходить на любой экран, кроме экрана «Сделки», потому что я уже нахожусь в Навигаторе сделок

Можно ли даже объединить два навигатора с React Navigation или можно только один вкладывать в другой?

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

Вот некоторые визуальные эффектычтобы объяснить проблему немного подробнее. Ради этого вопроса в Навигаторе ящиков нет большего количества экранов, чем в Навигаторе вкладок, но это конечная цель Ящика.

Это работает как чудо: экран ваучеров активен в этом TabNavigator, ик другим экранам можно переходить из обоих навигаторов:

Screenshot 1; Navigator

В этом и заключается проблема: модуль «Deals» фактически активен в навигаторе de box, так как это начальный маршрутящик и, следовательно, навигация в этом навигаторе, фактически будет перемещаться по TabNavigator:

Screenshot 2

...