我正在使用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完成上述操作?
非常感谢。