我正在使用react-navigation,React Native我想创建一个侧边栏菜单,该菜单作为从左到右的叠加层打开,并填充大约 80-90% 的宽度。
如果没有 react-navigation,这对于诸如 之类的包是可能的react-native-side-bar,但我想知道是否可以使用 DrawerNavigator 获得完全相同的功能。
但似乎 DrawerNavigator 有菜单按钮。是不是可以自己配置覆盖?
编辑
方案一
一种方法是使用
const MyStackNavigator = StackNavigator({
A: { screen: AScreen },
B: { screen: BScreen },
C: { screen: CScreen }
});
const RootNavigator = DrawerNavigator({
A: { screen: MyStackNavigator },
}, {
// set content of side bar
contentComponent: (props) => <Sidebar />
});
但是这样就可以从所有屏幕AScreen、BScreen和拖入抽屉CScreen,而我只希望它在那里用于AScreen,因为 StackNavigator 嵌套在 DrawerNavigator 中。
解决方案2
另一种解决方案是使用
const MyDrawerNavigator = DrawerNavigator({
A: { screen: AScreen },
}, {
// set content of side bar
contentComponent: (props) => <Sidebar />
});
const RootNavigator = StackNavigator({
A: { screen: MyDrawerNavigator },
B: { screen: BScreen },
C: { screen: CScreen }
});
但是AScreen由于 DrawerNavigator 嵌套在A.