Как Сбросить изменения стеков на вкладках внутри каждой вкладки в реакции на native bottomTabNavigator? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть bottomTabNavigator на моей вкладке, и внутри каждой вкладки у меня есть стеки. Я хочу сбросить стек при каждом нажатии на другую вкладку.

Навигатор вкладок -

Вкладка 1 - | _Stack Navigator

         - Screen 1

         - Screen 2

Вкладка 2 - | _Stack Navigator

         - Screen 3

         - Screen 4

Вкладка 3 - | _Stack Navigator

         - Screen 5
         - Screen 6

Текущий сценарий:. Предположим, я на вкладке 1 - я перехожу на экран 2 с экрана 1. Затем я нажимаю на вкладку 2. Теперь, если я снова нажму на вкладку 1, вместо экрана 1 появится экран 2.

Похожая вещь происходит на каждой вкладке.

Я хочу сбросить вкладку при каждом нажатии вкладки.

Пожалуйста, помогите.

Я использую -

"зависимости": {"@act-native-community / cli": "^ 4.1.0", "@react -native-community / masked-view ":" ^ 0.1.6 "," @ реагировать-навигация / нижние вкладки ":" ^ 5.0.5 "," @ реагировать-навигация / родной ":" ^ 5.0.5 " , "@ реагировать-навигация / стек": "^ 5.0.5", "реагировать": "16.9.0", "реагировать-нативный": "0.61.5", "реагировать-нативный-жест-обработчик": " ^ 1.6.0 "," Reaction-native-gifted-chat ":" ^ 0.13.0 "," Reaction-native-reanimated ":" ^ 1.7.0 "," Reaction-native-safe-area-context ": "^ 0.7.3", "реагировать на родные экраны": "^ 2.0.0-бета.7",},

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Существует способ доставки, предоставляемый навигацией. Вы можете отправить действие StackActions.reset() на текущий объект навигации с индексом 0, что должно привести к полной перезагрузке стека.

0 голосов
/ 03 апреля 2020

Вы можете добавить прослушиватель на экран вкладки и выполнять пользовательскую навигацию внутри

<AppTabs.Screen
    name="TabScreen1"
    listeners={({ navigation }) => ({
      tabPress: () => {
        navigation.navigate('Main1', { screen: 'Main2' });
      },
    })}
  />
...