大家自己 去看文档吧!!! 为了业务快把文档看完了。。。 不过给大家翻译了一点。。。
欢迎大家关注一下 基于React-naive开发的“IT喵~”项目。技能GET、互联网资讯、程序员相亲、GitHub监控。。。 Github地址:https://github.com/cbamls/kitty_front
效果图
内置的Navigators
起react-navigation
包含了下列三种函数赖创建navigators
StackNavigator
一次性渲染一个screen, 或者提供screen之间的转换, 当打开一个新的screen会被放到栈顶TabNavigator
渲染一个tab bar 使得用户在screen之间切换DrawerNavigator
提供了一种“抽屉”模型,用在滑入或退出screen中
使用Navigators渲染screen
navigators渲染的应用screen实质上是一个个的React组件
- Screen navigation
prop 允许screen分发navigation事件,比如打开另一个screen
- ScreennavigationOptions
用来个性化Screen如何被navigator展现(使用header, title, tab label)
StackNavigator
class MyHomeScreen extends React.Component {
static navigationOptions = {
title: 'Home',}
render() {
return (
<Button
onPress={() => this.props.navigation.navigate('Profile',{name: 'Lucy'})}
title="Go to Lucy's profile"
/>
);
}
}
const ModalStack = StackNavigator({
Home: {
screen: MyHomeScreen,},Profile: {
path: 'people/:name',screen: MyProfileScreen,});
API 定义
StackNavigator(RouteConfigs,StackNavigatorConfig)
RouteConfigs
StackNavigator({
Profile: {
//`ProfileScreen`是一个React component组件
screen: ProfileScreen,// 当`ProfileScreen` 被 StackNavigator加载,他会被默认传递一个 `navigation` 属性.
path: 'people/:name',// 传递action和路由参数
// Optional: 覆盖`ProfileScreen`的 `navigationOptions`
navigationOptions: ({navigation}) => ({
title: `${navigation.state.params.name}'s Profile'`,
}),...MyOtherRoutes,});
StackNavigatorConfig
initialRouteName
设置默认screeninitialRouteParams
初始路由的默认参数navigationOptions
对于所有Screen的默认路由选项paths
覆盖 route configs中设置的path集
TabNavigator
class MyHomeScreen extends React.Component {
static navigationOptions = {
tabBarLabel: 'Home',// Note: By default the icon is only shown on iOS. Search the showIcon option below.
tabBarIcon: ({ tintColor }) => (
<Image
source={require('./chats-icon.png')}
style={[styles.icon,{tintColor: tintColor}]}
/>
),};
render() {
return (
<Button
onPress={() => this.props.navigation.navigate('Notifications')}
title="Go to notifications"
/>
);
}
}
class MyNotificationsScreen extends React.Component {
static navigationOptions = {
tabBarLabel: 'Notifications',tabBarIcon: ({ tintColor }) => (
<Image
source={require('./notif-icon.png')}
style={[styles.icon,};
render() {
return (
<Button
onPress={() => this.props.navigation.goBack()}
title="Go back home"
/>
);
}
}
const styles = StyleSheet.create({
icon: {
width: 26,height: 26,});
const MyApp = TabNavigator({
Home: {
screen: MyHomeScreen,Notifications: {
screen: MyNotificationsScreen,{
tabBarOptions: {
activeTintColor: '#e91e63',});