我的问题是,我有一个配置文件堆栈,其中包含您可以通过/用户的配置文件访问的所有屏幕。我将此堆栈放到DrawerStack以及HomeScreen堆栈中,因为这是在其中导航的两种可能方式。但是,当我用一些参数导航到那里时,它说路线的参数是不确定的。
个人资料堆栈
function ProfileNavigator() {
return (
<Stack.Navigator>
<Stack.Screen name="ProfileScreen" component={Profile} />
...Other Screens
</Stack.Navigator>
);
}
Home Navigator
function HomeNavigator() {
return (
<Stack.Navigator>
<Stack.Screen name="Home" options={{headerShown: false}} component={Home} />
<Stack.Screen name="Profile" options={{headerShown: false}} component={ProfileNavigator}/>
... Other Screens
</Stack.Navigator>
);
}
抽屉导航器
<NavigationContainer>
<Drawer.Navigator
drawerContent={props => <CustomDrawerNavigator {...props} />}
initialRouteName="Home">
<Drawer.Screen name="Home" component={BottomNavigator} />
<Drawer.Screen
name="Profile"
options={{headerShown: false}}
component={ProfileNavigator}
/>
</Drawer.Navigator>
</NavigationContainer>
导航至个人资料
onPress={() => props.navigation.navigate('Profile', {current_user: true})}
我可以传递参数并导航到配置文件,如果我不使用Stack,但是我必须将每个配置文件屏幕添加到其他所有Stack中,我认为这样做效率不高。我读过某个地方,类似的名字可能会引起这样的问题,但是我无法解决这个问题。
所以最后我在文档中找到了答案。
我必须这样导航:
props.navigation.navigate('Profile',{屏幕:“个人资料”,参数:{current_user:true},});
而且我还在ProfileNavigator中将ProfileScreen名称更改为Profile。