【发布时间】:2020-08-10 00:05:19
【问题描述】:
我正在尝试使用“react-native-router-flux”库组件创建如下所示的导航抽屉:
我浏览了多个 stackoverflow 问题和其他文章,但找不到创建此抽屉的方法。我能够显示汉堡菜单图标,但无法创建具有多个选项的抽屉。
我的代码:
const navBarButton = () => {
return(
<TouchableOpacity onPress={() => Actions.refresh({ key: 'scene2', open: true })}>
<Icon
name='three-bars'
size={30}
color='#000'
onPress={() => Actions.aboutUs()}
/>
</TouchableOpacity>
);
}const Routes = () => {
return(
<Router renderLeftButton={navBarButton}>
<Scene key ="root">
<Scene key = "scene1" title = "scene1" component = { scene1 } initial = {true} />
<Scene key = "scene2" title = "scene2" component = { scene2 } />
</Scene>
</Router>
);
}
export default Routes;
我还需要创建哪些组件以及如何将它们与现有代码集成以创建导航抽屉?
==============更新代码=========
import SideMenu from 'react-native-side-menu';
import Home from './components/Home';
import AboutUs from './components/AboutUs';
import {Scene, Actions , Drawer, Stack} from 'react-native-router-flux';
export default function NavigationDrawer() {
return (
<Drawer
hideNavBar = {true}
key="drawerMenu"
contentComponent={SideMenu}
drawerWidth={300}
drawerPosition="left"
drawerIcon={
<TouchableOpacity onPress={() => Actions.refresh({ key: 'home', open: true })}>
<Icon
name='three-bars'
size={30}
color='#000'
onPress={() => navigation.dispatch(DrawerActions.openDrawer())}
/>
</TouchableOpacity>
}
>
<Stack key="mainContainer">
<Scene
key="home"
component={Home}
title="Home"
navigationBarStyle={{
backgroundColor: "black"
}}
navBarButtonColor={"blue"}
/>
<Scene
key="aboutUs"
component={AboutUs}
title="AboutUs"
navigationBarStyle={{
backgroundColor: "black"
}}
navBarButtonColor={"blue"}
/>
</Stack>
</Drawer>
);
}
【问题讨论】:
-
react-native-router-flux的最新生产版本使用 React Navigation 4.x,因此遵循 React Navigation docs for drawer navigation 应该是安全的。 -
但是这个库不会给我导航菜单的汉堡图标,对吧?
-
不是我的意思,我应该在哪里添加汉堡图标的组件以使其在所有屏幕上可见?我现在指的是这段代码:rb.gy/0lcepe
标签: react-native navigation-drawer react-native-router-flux