首页 > 解决方案 > 在 TabNavigator 中重置当前 Stack 并导航到其他 Stack (react-navigation)

问题描述

我的两个堆栈导航器定义如下。

const Stack1 = createStackNavigator({
    Step1, // screen
    Step2, // screen
    Step3  // screen
});

const Stack2 = createStackNavigator({
    First,  // screen
    Second  // screen
});

和选项卡导航器:

const AppStack = createBottomTabNavigator({
    Stack1,
    Stack2,
    Stack3,
    Stack4
});

当用户在 Step3 屏幕(来自 Stack1)并按下我想要的按钮时:

1. 重置 Stack1 和 Stack2,而不重置 Stack3 和 Stack4
2. 然后导航到 Stack2 中的某个屏幕(例如“第一个”屏幕) .

任何人都知道如何以最简单和最有效的方式实现这一目标?

我当前的解决方法,它只重置 Stack2 并导航到第一个屏幕:

navigation.dispatch(
    StackActions.push({
        routeName: 'Stack2',
        action: StackActions.reset({
          index: 0,
          key: null,
          actions: [
            StackActions.push({ routeName: 'First' }),
          ],
        }),
    })
);

版本:“反应导航”:“~2.3.1”

标签: react-nativereact-navigation

解决方案


推荐阅读