Я новичок в react-navigation
и пытаюсь оборачивать голову тем, как сделать следующее:
Учитывая эту навигационную структуру:
RootTabNavigator
LoggedOut_StackNavigator
...
LoggedIn_StackNavigator
LoggedIn_TabNavigator <-- TabBar rendered by this Navigator
TabA_StackNavigator
ScreenA
ScreenB
Я хотел бы иметь возможность перемещаться от ScreenA
до ScreenB
, используя типичный переход "сползать вправо", таким образом, чтобы TabBar
был показан на ScreenA
, но не отображается на ScreenB
. Другими словами, когда я перехожу к ScreenB
, я хочу, чтобы он занял все окно.
Как только пользователь перейдет от ScreenA
до ScreenB
, он может либо нажать кнопку "Назад", чтобы вернуться к ScreenA
, либо перейти к новым маршрутам, используя тот же переход с TabBar
still not.
Что я пробовал:
-
navigationOptions.tabBarVisible
: это свойство работает только при применении кTabA_StackNavigator
, что означает, что все экранов в стеке также скрываютTabBar
. Добавление его к экранам внутри StackNavigator не имеет эффекта. -
Добавив новый
AllScreens_StackNavigator
в качестве брата изLoggedIn_TabNavigator
и перейдя на маршруты внутри этого навигатора, я получаю сообщение об ошибке:Expect nav state to have routes and index, {"routeName":"ScreenB", "params": {}, "key": "init-id-1516..."}
. Навигационное действие, которое я отправил, чтобы попытаться сделать это:{ "action": Object { "params": Object {}, "routeName": "ScreenB", "type": "Navigation/NAVIGATE", }, "params": Object {}, "routeName": "AllScreens_StackNavigator", "type": "Navigation/NAVIGATE", }
Любая помощь очень ценится!