我正在使用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
.