Jam*_*een 4 javascript node.js reactjs react-native react-navigation
我正在使用react-navigation,React Native我想创建一个侧边栏菜单,它作为一个从左到右的叠加打开,填充宽度的80-90%左右.
没有反应导航,这可以用于诸如此类的包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 />
});
Run Code Online (Sandbox Code Playgroud)
但随后可能会在抽屉拖动从所有屏幕AScreen,BScreen和CScreen,而我只希望它在那里AScreen,因为StackNavigator嵌套在DrawerNavigator.
另一种解决方案是使用
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 }
});
Run Code Online (Sandbox Code Playgroud)
但是,AScreen自DrawerNavigator嵌套以来,标题将位于顶部A.
小智 5
我需要您正在描述的相同功能,并设法使其与React导航一起使用.基本上,我需要一个完全自定义的抽屉(侧面菜单).
这是我的导航器设置:
const MainNavigator = DrawerNavigator({
Home: {
screen: StackNavigator({
Search: {
screen: SearchScreen
},
Result: {
screen: ResultScreen
}
})
},
Saved: {
screen: StackNavigator({
SavedStack: {
screen: SavedWordsScreen
}
})
},
About: {
screen: StackNavigator({
AboutStack: {
screen: AboutScreen
}
})
}
},{
contentComponent: props => (<Drawer navigation={props.navigation} drawerProps={{...props}} />)
});
Run Code Online (Sandbox Code Playgroud)
如您所见,我创建了一个包含我的自定义抽屉内容的Drawer组件.这是该组件的基本设置:
import React, { Component } from 'react';
import { ScrollView, View, Text } from 'react-native';
import { Button } from 'react-native-elements';
class Drawer extends Component {
render() {
return (
<View>
<Button title="Search" onPress={() => this.props.navigation.navigate('Home')} />
<Button title="Saved" onPress={() => this.props.navigation.navigate('Saved')} />
<Button title="About" onPress={() => this.props.navigation.navigate('About')} />
</View>
);
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助.我已经简化了一些代码来主要显示相关位,所以如果你有任何后续问题,请问!
| 归档时间: |
|
| 查看次数: |
5129 次 |
| 最近记录: |