首页 文章

使用react-navigation v2进行导航

提问于
浏览
0

让我们简单一点 .

我有3个屏幕 . SplashHomeSettings . 我正在使用ReactNavigation-v2StackNavigator 在屏幕之间导航 . 程序流程如下, Splash -> Home -> Settings . 除了一件事,一切都很好 . 当我从Home按回按钮时,我从堆栈中获取 Splash 屏幕 .

所以问题是,如何从导航器堆栈中删除 Splash 屏幕并阻止返回 Home -> Splash .

我用google搜索了很多,找不到完美的解决方案 . 我知道有很多第三方库,但我想使用ReactNavigation .

如果您需要更多详细信息,请在评论中与我联系 .

注意:我是反应原生的新手 .

1 回答

  • 1

    你可以选择2个选项 .

    当您从 SplashScreen 导航到主屏幕时,第一个选项是reset navigation堆栈 .

    “重置”操作将擦除整个导航状态,并将其替换为多个操作的结果 .

    Sample

    import { StackActions, NavigationActions } from 'react-navigation';
    
    const resetAction = StackActions.reset({
      index: 0,
      actions: [NavigationActions.navigate({ routeName: 'Profile' })],
    });
    this.props.navigation.dispatch(resetAction);
    

    第二种选择是将SwitchNavigatorStackNavigator 结合使用 .

    SwitchNavigator的目的是一次只显示一个屏幕 . 默认情况下,它不处理后退操作,并在您切换时将路由重置为其默认状态 . 这是我们从身份验证流程中想要的确切行为 .

相关问题