• React Native 中 react-navigation 导航器的使用 [亲测可用]


    在 React Native 中,官方已经推荐使用 react-navigation 来实现各个界面的跳转和不同板块的切换。 react-navigation 主要包括三个组件:

    • TabNavigator 切换组件 ,用来实现同一个页面上不同界面的切换,即tab选项卡
    • StackNavigator 导航组件,用于实现各个页面之间的跳转,即页面跳转(通过stack栈记录)
    • DrawerNavigator 抽屉组件,可以实现侧滑的抽屉效果 

    我这主要用 StackNavigator 先.因为用的是组件之间的跳转

    demo  请狠狠的 戳这里 http://download.lllomh.com/cliect/#/product/J701027723523459

    先创建路由文件: 导入相关.导入组件,定义好地址

    navigator/AppNavigator.js

    //导航器
    import React, {Component} from 'react';
    import {Platform,Button,ScrollView,SafeAreaView,View} from 'react-native';
    import {createStackNavigator,createMaterialTopTabNavigator,createBottomTabNavigator,createDrawerNavigator,DrawerItems,createSwitchNavigator} from 'react-navigation'
    import Ionicons from 'react-native-vector-icons/Ionicons'
    import MaterialIcons from 'react-native-vector-icons/MaterialIcons'
    
    
    //引入组件页面
    import HomePage from '../pages/HomePage'
    import Page1 from '../pages/Page1'
    import Page2 from '../pages/Page2'
    import Page3 from '../pages/Page3'
    import Page4 from '../pages/Page4'
    import Page5 from '../pages/Page5'
    import Login from '../pages/Login'
    
    
    //1 创建两个导航器,用于演示createSwitchNavigator
    const AppStack = createStackNavigator({
        Home: {
            screen:HomePage
        },
        Page1: {
            screen:Page1
        },
        Page2: {
            screen:Page2
        }
    })
    const AuthStack = createStackNavigator({ //默认启动打开的组件 相当于 web 的  index.html
        Login: {
            screen:HomePage
        }
    })
    //2 将用于演示 1 createSwitchNavigator导航器导出
    export const AppSwitchNavigator =  createSwitchNavigator({
        Auth:AuthStack,
        App:AppStack
    }, {
        initialRouteName:'Auth'
    })
    

      

    然后创建对应的组件文件:

    再在App.js 中:

    import React, {Component} from 'react';
    import {Platform, StyleSheet, Text, View,Image} from 'react-native';
    
    
    
    export default class App extends Component<Props> {
    
      constructor(props) {
        super(props);
        this.state = {
          selectedTab:'home'
        }
      }
    
      render() {
        return (
            <View style={styles.container}>
              <Text>{'首页'}</Text>
            </View>
        );
      }
    }
    
    const styles = StyleSheet.create({
      container: {
        flex: 1
      }
    });
    

      

      

    最后再index.js里面:

    /**
     * @format
     */
    
    import {AppRegistry} from 'react-native';
    import {name as appName} from './app.json';
    
    import App from './App';
    import {createAppContainer} from 'react-navigation'
    
    //导入导航器(SwitchNavigator)
    import {AppSwitchNavigator} from './navigator/AppNavigator'
    
    
    //在新版的react-navigation里面提供了 一个createAppContainer组件
    const AppSwitchNavigatorContainer = createAppContainer(AppSwitchNavigator)
    
    AppRegistry.registerComponent(appName, () => AppSwitchNavigatorContainer);
  • 相关阅读:
    微信登录时用户信息无法写入数据库
    首次配置路由出现404的问题
    php登录模块出现循环重定向的问题
    关于动态生成dom绑定事件的问题
    将博客搬至CSDN
    C++ this指针的详解
    zigbee 中ZDO的理解
    zigbee端口的理解
    c语言的一些易错知识积累
    zigbee 安全通信加密链接密钥
  • 原文地址:https://www.cnblogs.com/lllomh/p/rn.html
Copyright © 2020-2023  润新知