代码之家  ›  专栏  ›  技术社区  ›  tdc

使用后退按钮初始化为嵌套屏幕,以使用react导航在react native中堆叠根目录

  •  0
  • tdc  · 技术社区  · 1 年前

    我正在使用React Native和React Navigation库来复制iOS Reddit应用Apollo中的导航行为: https://i.imgur.com/983G04Q.png

    我的路由结构如下:

    TabNavigation
    |- PostsTab
      |- PostsStack
        |- SubredditListScreen
        |- PostFeedScreen
        |- PostDetailsScreen
    

    我想实现以下目标:

    • 当应用程序启动时,用户会看到 PostFeedScreen .
    • 这个 PostFeedScreen 标题中有一个“后退”按钮,可导航到 SubredditListScreen .
    • 如果 PostsTab 启用时按下选项卡栏 PostFeedScreen ,滚动到顶部,如果已位于顶部,则导航到 子代码列表屏幕 .
    • 这个 子代码列表屏幕 没有后退按钮,但用户可以从右边缘拖动返回到 PostFeedScreen .

    这是我的代码:

    // TabNavigation.tsx
    
    function TabNavigation() {
      return (
        <Tab.Navigator>
          <Tab.Screen name={SCREENS.POSTS} component={PostsStackScreen} />
          // ..other non-relevant tabs
        </Tab.Navigator>
      );
    }
    
    // PostsStackScreen.tsx
    
    function PostsStackScreen() {
      return (
        <PostsStack.Navigator initialRouteName={SCREENS.POSTS_FEED}>
          <PostsStack.Screen name={SCREENS.SUBREDDITS_LIST} component={SubredditsScreen} />
          <PostsStack.Screen name={SCREENS.POSTS_FEED} component={PostFeedScreen} />
          <PostsStack.Screen name={SCREENS.POST_DETAILS} component={PostDetailsScreen} />
        </PostsStack.Navigator>
      );
    }
    

    但是,我的代码无法按预期工作:

    • 应用程序正确初始化为 PostFeedScreen ,但没有“返回”按钮 Subreddits 屏幕
    • 单击选项卡按钮不会将用户带到 子循环 屏幕

    如何使用React Navigation完成上述操作? 非常感谢。

    0 回复  |  直到 1 年前
    推荐文章