首页 > 解决方案 > React 堆栈导航自动启动第一个屏幕

问题描述

我有一个以下堆栈和切换导航器。这是代码:

父堆栈

const ParentStack = createStackNavigator(
  {
    Screen1,
    Screen2,
    Screen3,
  },
  {headerMode: 'none', initialRouteName: 'Screen1'},
);

用户堆栈

const UserStack = createStackNavigator(
  {
    Screen11,
    Screen22,
    Screen33,
  },
  {headerMode: 'none', initialRouteName: 'Screen11'},
);

交换机堆栈

    const AppNavigator = createSwitchNavigator(
  {
    Auth,
    ParentStack,
    UserStack,
  },
  {
    initialRouteName: 'Auth',
  },
);

当我在“身份验证”屏幕上时,我开始Screen2使用以下代码:

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

Screen2 启动成功。但是当我按下 Back 时,Screen1 也会出现在堆栈中。但我只启动了 Screen2。

标签: react-native

解决方案


import {NavigationActions, StackActions} from 'react-navigation';

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

导航到 screen2 时使用上面的代码。


推荐阅读