首页 文章

如何在StackNavigator中导航后破坏屏幕

提问于
浏览
0

使用反应导航 . 我有一个StackNavigator

const Stack = StackNavigator( // eslint-disable-line new-cap
    {
      List: {
        screen: DrugPage,
      },
      Create: {
        screen: DrugCreate,
      },
    },
    {
      initialRouteName: 'List',
    }
  );

第一个屏幕是实体列表,第二个屏幕是创建将添加到列表的新实体 . 第一个“列表”屏幕在导航栏中有一个指向“添加实体”的链接,该链接指向“创建”路径 . 创建实体后,我使用navigation.navigate返回List路由 . 这将创建实体屏幕保留在堆栈上,因此后退按钮出现在列表屏幕的导航栏中 . 在成功创建实体后,我不希望创建实体屏幕保留在堆栈中 - 我希望它被销毁,因此创建屏幕不会堆积在我不需要的堆栈中,因此我没有我不想在列表屏幕上显示后退按钮 . 我想过使用StackNavigator,但这并没有给你一个漂亮的导航栏(在iOS中) . 有什么建议?

1 回答

  • 0

    我根据@Pritish Vaidya对我原始问题的评论在NavigationActions中使用了重置动作 . (https://reactnavigation.org/docs/navigation-actions#reset

    实施

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

相关问题