感谢您抽出时间阅读&回答这个问题。我会尽力解释我遇到的问题。
HomeStack
组件保持四个屏幕的底部导航。让我头疼的一个屏幕是ProjectsStack
export const ProjectsStack = (): ReactElement => {
return (
<ProjectsStackNav.Navigator initialRouteName='ProjectsScreen' screenOptions={defaultScreenOptions}>
<ProjectsStackNav.Screen name='ProjectsScreen' component={ProjectsScreen} />
<ProjectsStackNav.Screen name='CompletedProjectsScreen' component={CompletedProjectsScreen} />
<ProjectsStackNav.Screen name='ProjectTasksScreen' component={ProjectTasksScreen} />
<ProjectsStackNav.Screen name='CompletedProjectsTasksScreen' component={ProjectTasksScreen} />
</ProjectsStackNav.Navigator>
);
};
如您所见,ProjectTasksScreen
是一个基于props=>如果它是打开的,它将渲染ProjectTasksScreen
,否则它将渲染基本上相同屏幕的CompletedProjectsTasksScreen
(可重用性最好(
要进入CompletedProjectsTasksScreen
,您需要来自ProjectTasksScreen
。
现在的问题是,当您想从CompletedProjectsTasksScreen
返回时,它不会转到ProjectTasksScreen
,而是会导航到ProjectTasksScreen
的上一个屏幕,即ProjectsScreen
。
有没有比把所有东西都重构到屏幕上更好的解决方案;组成部分
navigation.push
方法而不是navigation.navigate
可以解决您的问题https://reactnavigation.org/docs/navigating/#navigate-对路多路