美文网首页
react-native 小栗子

react-native 小栗子

作者: 马川敉 | 来源:发表于2019-03-28 20:13 被阅读0次

路由使用react-navigation。createStackNavigator和createBottomTabNavigator结合使用。
例子包含欢迎页,tabbar页面,详情页面。

import React, { Component } from 'react';
import { Image, Button, View, Text, StyleSheet, } from 'react-native';
import { createStackNavigator, createBottomTabNavigator, createAppContainer } from 'react-navigation';


const styles = StyleSheet.create({
    icon: {
        width: 20,
        height: 20
    },
    wel: {
        top: 50,
        width: 300,
        height: 400
    }
});


class Welcome extends Component {
    static navigationOptions = {
        header: null
    };
    render() {
        return (
            <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
                <Text>Welcome Screen</Text>
                <Button
                    title="Go to Home"
                    onPress={() => {
                        this.props.navigation.replace('tabs');
                    }}
                />
                <Image style={styles.wel} source={{ uri: 'https://pic.52112.com/icon_pack_thumb/201901/21190030_fd7893728c.png' }}></Image>
            </View >
        );
    }
}

class Details extends Component {
    static navigationOptions = {
        headerStyle: {
            backgroundColor: '#6699ff',
        },
        headerTitle: '详情',
        headerTintColor: '#ffffff',
        headerTitleStyle: {
            fontWeight: 'normal',
        }
    };
    render() {
        return (
            <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
                <Text>Details Screen</Text>
                <Button
                    title="Go to Home"
                    onPress={() => {
                        this.props.navigation.navigate('home', {
                            itemId: 86,
                            otherParam: 'anything you want here',
                        });
                    }}
                />
            </View >
        );
    }
}

class Home extends Component {
    static navigationOptions = {
        headerStyle: {
            backgroundColor: '#6699ff',
        },
        title: '首页',
        headerTintColor: '#ffffff',
        headerTitleStyle: {
            fontWeight: 'normal',
        },
        tabBarIcon: ({ focused }) => {
            if (focused) {
                return <Image style={styles.icon} source={{ uri: 'https://pic.52112.com/icon/256/20190322/33737/1652392.png' }}></Image>
            } else {
                return <Image style={styles.icon} source={{ uri: 'https://pic.52112.com/icon/256/20190322/33737/1652390.png' }}></Image>
            }
        }
    };
    render() {
        return (
            <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
                <Text>Home Screen</Text>
                <Button
                    title="Go to Details"
                    onPress={() => {
                        this.props.navigation.navigate('details', {
                            itemId: 86,
                            otherParam: 'anything you want here',
                        });
                    }}
                />
            </View>
        );
    }
}
class Mine extends Component {
    static navigationOptions = {
        headerStyle: {
            backgroundColor: '#6699ff',
        },
        title: '我的',
        headerTintColor: '#ffffff',
        headerTitleStyle: {
            fontWeight: 'normal',
        },
        tabBarIcon: ({ focused }) => {
            if (focused) {
                return <Image style={styles.icon} source={{ uri: 'https://pic.52112.com/icon/256/20190322/33737/1652389.png' }}></Image>
            } else {
                return <Image style={styles.icon} source={{ uri: 'https://pic.52112.com/icon/256/20190322/33737/1652364.png' }}></Image>
            }
        }
    };
    render() {
        return (
            <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
                <Text>Mine Screen</Text>
                <Button
                    title="Go to Details"
                    onPress={() => {
                        this.props.navigation.navigate('details', {
                            itemId: 86,
                            otherParam: 'anything you want here',
                        });
                    }}
                />
            </View>
        );
    }
}



const TabContainer = createBottomTabNavigator({
    home: Home,
    mine: Mine
});


const stack = createStackNavigator({
    welcome: Welcome,
    details: Details,
    tabs: {
        screen: TabContainer,
        navigationOptions: {
            header: null
        }
    }
});



const AppContainer = createAppContainer(stack);

export default class App extends Component {
    render() {
        return <AppContainer />;
    }
}

相关文章

  • react-native 小栗子

    路由使用react-navigation。createStackNavigator和createBottomTab...

  • 小栗子

    小栗子阳历生日一岁三个月了,小个人,还是不爱米面,不爱喝水,除了身高体重牙齿不怎么长,大便一天一次还算正常,大运动...

  • 小栗子一家去旅行——听顿顿讲故事

    小栗子一家坐在车上,小栗子的妈妈开着车,小栗子和爸爸坐在后排座位上,小栗子坐在儿童座椅上。 他们路过了许多的树林,...

  • 【PHP】Header函数做用户认证

    小栗子:

  • React-Native 与原生层之间的通信

    写在前面:在你编写react-native应用的时候,有些时候是需要原生层的api来完成特定功能的;举个栗子:调起...

  • 栗子的故事(一)

    ——献给小栗子 栗子五岁时,一日天气晴朗,栗子妈决定带栗子逛公园。 栗子蹦蹦跳跳,在公园玩的甚是开心。栗子妈略感疲...

  • 小程序 swiper

    小程序swiper 栗子。。。。

  • Semaphore使用

    1 简介 2 小栗子

  • 就算再下雨也陪在你的身边。

    从前,有一棵栗子树上有一个很不一样的小栗子。 它很调皮,总是到处乱蹦,一点儿都不像其他栗子那样温柔沉着。 小栗子过...

  • webpack小栗子

    概念 Webpack 是一个模块打包器。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的...

网友评论

      本文标题:react-native 小栗子

      本文链接:https://www.haomeiwen.com/subject/fyocbqtx.html