反应导航:返回堆栈顶部但禁用“返回”

时间:2018-05-09 15:06:24

标签: reactjs react-native navigation react-navigation

navigation flow map (Sorry, I cannot post image)

我正在使用React Native for Android Application和React Navigation。现在在屏幕0(S0)。然后进行了导航。

  1. this.props.navigation.navigate("S1")
  2. this.props.navigation.navigate("A1")
  3. this.props.navigation.navigate("A2")
  4. this.props.navigation.navigate("A3")
  5. 现在,一旦A3中的动作完成,我必须返回到屏幕1(S1)。但是,如果我使用this.props.navigation.navigate("S1"),那么我可以按回按钮(硬件或标题栏)然后返回到屏幕A3

    S1上按下后退按钮时,我想返回S0。我也不想手动设置它,因为许多其他页面可以来S1

    任何建议或想法如何使这项工作?我尝试了popToTop()goBack("A"),但两者都无效。

1 个答案:

答案 0 :(得分:0)

您可以使用NavigationActions.reset返回第一个屏幕,或NavigationActions.pop至"弹出"回到你想要的屏幕。

导航重置的示例代码

    this.props.navigation.dispatch(NavigationActions.reset({
            index: 0,
            actions: [
                    NavigationActions.navigate({ routeName: 'S0' }),
                    NavigationActions.navigate({ routeName: 'S1' }),
                    NavigationActions.navigate({ routeName: 'A1' }),
                    NavigationActions.navigate({ routeName: 'A2' }),
                    NavigationActions.navigate({ routeName: 'A3' }),
            ],
    }));

导航弹出的示例代码:

    this.props.navigation.dispatch(NavigationActions.pop({
            n: 3,
            immediate: true
    }));

注意:请记住导入{NavigationActions}