Как переключиться на другую вкладку и сбросить все вкладки в TabNavigator в React Native - PullRequest
0 голосов
/ 07 мая 2019

Это спрашивалось во многих различных формах, и я искал всю неделю, но не мог понять, как перейти от Connect к Devices в настройках ниже.

const HomeStack = createStackNavigator({
    Devices: DevicesScreen,
    Details: DetailsScreen, // go here
})

const NewDeviceStack = createStackNavigator({
    Start: StartScreen,
    Connect: ConnectScreen, // start here
})

const BottomTabs = createBottomTabNavigator(
{
    Home: { screen: HomeStack },
    Settings: { screen: NewDeviceStack },
}

export default createAppContainer(BottomTabs);

На экране Connect этот код пытается сбросить текущий стек и вернуться к Devices

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

Это не с:

Error: There is no route defined for key Devices.
Must be one of: 'Start','Connect'

1 Ответ

1 голос
/ 07 мая 2019

Используйте navigation prop, при нажатии кнопки перейдите на экран устройства

this.props.navigation.navigate('Devices')

или просто создайте функцию для обработки навигации

goToScreen = (routeName, params = {}) => {

  const navigateAction = NavigationActions.navigate({
    routeName: routeName,

    params: params, // parameter

    action: NavigationActions.navigate({ routeName: routeName }), // screen you want to navigate to
  });

  this.props.navigation.dispatch(navigateAction);

};
...