因为,标题是堆栈导航器的一部分。因此,如果您想在项目屏幕上使用它,则必须将 StackNavigator 添加到您的屏幕中。
您可以将堆栈放在选项卡内,也可以将选项卡放在堆栈内,具体取决于您的用例。
我在这里创建了一个小吃示例https://snack.expo.io/@gie3d/drawer-tab-stack
从小吃示例链接中,您将看到带有堆栈和不带堆栈的选项卡栏以及它的显示方式。
const HomeStack = () => (
<Stack.Navigator>
<Stack.Screen name="Home" component={Home} />
</Stack.Navigator>
);
const TabWithoutStack = () => (
<Tab.Navigator>
<Tab.Screen name="HomeTabWithoutStack1" component={Home} />
<Tab.Screen name="HomeTabWithoutStack2" component={Home} />
</Tab.Navigator>
)
const TabWithStack = () => (
<Tab.Navigator>
<Tab.Screen name="HomeTabWithStack1" component={HomeStack} />
<Tab.Screen name="HomeTabWithStack2" component={HomeStack} />
</Tab.Navigator>
)
const Home = ({navigation}) => {
return (
<View>
<Text>This is Home</Text>
<Button onPress={() => navigation.toggleDrawer()}>
Open Drawer
</Button>
</View>
)}
export default () => {
return (
<View style={{flex: 1}}>
<NavigationContainer>
<Drawer.Navigator initialRouteName="HomeStack">
<Drawer.Screen name="HomeStack" component={HomeStack} />
<Drawer.Screen name="HomeNoStack" component={Home} />
<Drawer.Screen name="TabWithoutStack" component={TabWithoutStack} />
<Drawer.Screen name="TabWithStack" component={TabWithStack} />
</Drawer.Navigator>
</NavigationContainer>
</View>
);
}