将 Drawer 导航器嵌套在 Stack 导航器中或相反有什么区别?
What is the difference between nesting a Drawer navigator inside a Stack navigator, or the opposite?
在 React Navigation 版本 6.x 的文档中,在基础知识中,Navigating to a screen in a nested navigator,他们有一个在 Stack 导航器中嵌套 Drawer 导航器的示例。
function Root() {
return (
<Drawer.Navigator>
<Drawer.Screen name="Home" component={Home} />
<Drawer.Screen name="Profile" component={Profile} />
<Stack.Screen name="Settings" component={Settings} />
</Drawer.Navigator>
);
}
function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Root"
component={Root}
options={{ headerShown: false }}
/>
<Stack.Screen name="Feed" component={Settings} />
</Stack.Navigator>
</NavigationContainer>
);
}
为什么会这样显示,而不是Drawer作为父导航器,Stack在里面?
我看过 other 这样做的示例(抽屉父级,Stack inside),但我不明白布局或最终 UI.
在其他地方问过并得到了这个答案:
If stack is nested inside drawer - you can still open drawer in any
stack screen, etc
if drawer is nested inside stack - drawer will be
only present in the screen that drawer is, and cannot be seen as other
screens will render above it
在 React Navigation 版本 6.x 的文档中,在基础知识中,Navigating to a screen in a nested navigator,他们有一个在 Stack 导航器中嵌套 Drawer 导航器的示例。
function Root() {
return (
<Drawer.Navigator>
<Drawer.Screen name="Home" component={Home} />
<Drawer.Screen name="Profile" component={Profile} />
<Stack.Screen name="Settings" component={Settings} />
</Drawer.Navigator>
);
}
function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Root"
component={Root}
options={{ headerShown: false }}
/>
<Stack.Screen name="Feed" component={Settings} />
</Stack.Navigator>
</NavigationContainer>
);
}
为什么会这样显示,而不是Drawer作为父导航器,Stack在里面?
我看过 other 这样做的示例(抽屉父级,Stack inside),但我不明白布局或最终 UI.
在其他地方问过并得到了这个答案:
If stack is nested inside drawer - you can still open drawer in any stack screen, etc
if drawer is nested inside stack - drawer will be only present in the screen that drawer is, and cannot be seen as other screens will render above it