react-native统一入口界面,并实现页面的跳转

前几篇的react-native相关博客,写到简书上了,发现代码的排版不好,不美,所以又回来了.

先简单的说一下统一,入口页面的代码,大家都知道react-native的强大在与一套代码多终端运行, 但是大家init react-native项目的时候,默认的是两个入口界面Android和ios的:

index.android.js        index.ios.js .而且这两个js文件中的代码是一毛一样的,这样貌似不是一套代码啊, 那么我们该如何把他统一成一套代码呢?

1.首先在根目录创建一个App.js文件,里面内容就是页面代码.e.g.:

export default class App extends Component {
    render() {
        return (
            <View >
                <Text style={styles.welcome}>
                    Welcome to React Native!
                </Text>
            </View>
        );

    }

}

2.index.android.js 和index.ios.js统一修改如下:

AppRegistry.registerComponent('myrn', () => App);
注意:别忘了导包,

至此工作完成,以后就可以用一套代码来在Android和ios上运行了.


二,页面跳转.

使用react-navigation进行页面跳转导航,

而且这也是官方以后主推的导航库,用法十分简单,方便.

至于用法,自己百度去吧,这里只是简单的说一下,结合上部分如何实现跳转.

两个页面文件:App.js  ChatScreen.js.

App.js:

export default class App extends Component {
    static navigationOptions = {
        title: 'Welcome',
    };
    render() {
        const { navigate } = this.props.navigation;
        return (
            <View style={styles.container}>
                <Button title="OnClick" onPress={() => navigate('Chat')}/>
                <Text style={styles.welcome}>
                    Welcome to React Native!
                </Text>
            </View>
        );

    }
}

ChatScreen.js:

export default class ChatScreen extends Component {
    static navigationOptions = {
        title: 'ChatScreen',
    };
    render() {
        return (
            <View >
                <Text>ChatScreen界面</Text>
            </View>
        );
    }
}
最后是index.android.js和index.ios.js文件,内容一样.

const appNav = StackNavigator({
    app: { screen: app },
    Chat: { screen: ChatScreen },
});

AppRegistry.registerComponent('myrn', () => appNav);

此处比原来多的代码是把页面添加到StackNavigator中,并注册.

ok,完 了,That's all.


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值