美文网首页
react-native导航-入门

react-native导航-入门

作者: 微风_10a5 | 来源:发表于2023-08-21 08:50 被阅读0次

    使用第三方导航库React Navigation

    第一步:安装
    yarn add @react-navigation/native
    

    安装react-navigation的依赖库

    yarn add react-native-screens react-native-safe-area-context
    

    使用stack导航(类似OS中的NavigationController)

    yarn add @react-navigation/native-stack
    

    使用bottom tab导航(类似OS中的TabController)

    yarn add @react-navigation/bottom-tabs
    

    如果是iOS上跑程序,就需要重新去pod install,把上面新增的库,下载到工程本地

    第二步:配置
    • 新建2个页面MyHomeScreen,DetailScreen,用于展示界面的跳转
    //import liraries
    import React, { Component } from 'react';
    import { View, Text, StyleSheet, Button } from 'react-native';
    
    // create a component
    const HomeScreen = ({ navigation }) => {
    
        goToDetailScreen = () => {
            navigation.navigate('Details')
        }
    
        return (
            <View style={styles.container}>
                <Text>HomeScreen</Text>
                <Button title='to detail screen' onPress={goToDetailScreen}></Button>
            </View>
        );
    };
    
    // define your styles
    const styles = StyleSheet.create({
        container: {
            flex: 1,
            justifyContent: 'center',
            alignItems: 'center',
            backgroundColor: '#f5f5f5',
        },
    });
    
    //make this component available to the app
    export default HomeScreen;
    
    //import liraries
    import React, { Component } from 'react';
    import { View, Text, StyleSheet, Button } from 'react-native';
    
    
    
    // create a component
    const DetailScreen = ({ navigation }) => {
    
        goBackToHomeScreen = () => {
            // navigation.goBack()
            navigation.popToTop()
        }
    
        return (
            <View style={styles.container}>
                <Text>DetailScreen</Text>
                <Button title='back to home screen' onPress={goBackToHomeScreen}></Button>
    
            </View>
        );
    };
    
    // define your styles
    const styles = StyleSheet.create({
        container: {
            flex: 1,
            justifyContent: 'center',
            alignItems: 'center',
            backgroundColor: '#f5f5f5',
        },
    });
    
    //make this component available to the app
    export default DetailScreen;
    
    • 在app.js界面进行导航的配置工作


      image.png

    先是导入库,导入Screen,然后,就是配置一下导航

        <NavigationContainer>
            <Stack.Navigator initialRouteName="Home">
                <Stack.Screen name="Home" component={MyHomeScreen} />
                <Stack.Screen name="Details" component={MyDetailScreen} />
    
            </Stack.Navigator>
        </NavigationContainer>
    
    使用

    从Home界面进入到Detail界面

        goToDetailScreen = () => {
            navigation.navigate('Details')
        }
    

    从Detail界面返回到Home界面

    
        goBackToHomeScreen = () => {
            // navigation.goBack()
            navigation.popToTop()
        }
    

    最终效果:


    navigation.gif

    结尾

    后续会在本文的基础上,做一些更多场景导航的实例,今天RN 的分享就到这里喽,小伴们,觉得有点用的话,或者已经看到这里面来的请点个赞加关注吧~~ 后续分享更多有关RN Flutter和移动端原生开发相关的文章。欢迎在下面留言交流。

    相关文章

      网友评论

          本文标题:react-native导航-入门

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