Реагирующая навигация: как вернуться к корневому навигатору вкладок с определенной вкладкой из дочернего стека - PullRequest
0 голосов
/ 09 июня 2018

Я использую реагировать на навигацию v2 в React Native и застреваю всякий раз, когда хочется вернуться к определенной вкладке в корневом навигаторе.

IУ меня следующий стек маршрутов:

const HomeStack = createStackNavigator(
  {
    Home: Home,
    CreateInvoice: CreateInvoiceScreen,
    InvoiceSummary: InvoiceSummaryScreen,
    PinEntry: PinEntryScreen
  },
  {
    navigationOptions: {
      header: null
    }
  }
);

const CustomersStack = createStackNavigator(
  {
    Customers: CustomersScreen,
    Details: CustomerDetailsScreen
  },
  {
    navigationOptions: {
      header: null
    }
  }
);

const Tab = createBottomTabNavigator(
  {
    Home: HomeStack,
    Transactions: TransactionsTab,
    Customers: CustomersStack,
    Settings: SettingsTab
  }
);

const Routers = createStackNavigator({
  splash: {
    screen: SplashScreen,
    navigationOptions: {...navigationOptions}
  },
  login: {
    screen: LoginScreen,
    navigationOptions: {...navigationOptions}
  },
  home: {
    screen: HomeScreen,
    navigationOptions: {...navigationOptions}
  }
});

Теперь я на экране PinEntry и хочу вернуться на вкладку Транзакции в TabNavigator.Я могу вернуться на вкладку Home , используя следующий скрипт:

const resetAction = StackActions.reset({
  index: 0,
  actions: [NavigationActions.navigate('Home')]
});
this.props.navigation.dispatch(resetAction);

Но моя цель - вернуться к определенной позиции вкладки, в данном случае это 'Транзакции' tab.

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

1 Ответ

0 голосов
/ 09 июня 2018

Я нашел решение:

const resetAction = StackActions.reset({
  index: 0,
  key: null,
  actions: [NavigationActions.navigate({ routeName: 'Home' })]
});
const goToTransaction = NavigationActions.navigate({
  routeName: 'Transactions'
});
this.props.navigation.dispatch(resetAction);
this.props.navigation.dispatch(goToTransaction);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...