RN中的路由,底部导航栏和路由的传参。 一期

安装主库

npm i react-navigation --save

安装主库依赖的第三方库

npm i react-native-gesture-handler --save
npm i react-native-reanimated --save

根据项目需要引入各导航组件的库

npm i react-navigation-stack --save
npm i react-navigation-tabs --save
npm i react-native-safe-area-context --save
npm i @react-native-community/masked-view --save

以上步骤操作完成后就可以进入代码时间了!

1.可以在根目录下创建一个储存代码的文件夹:如screens文件夹;
2.在screens文件夹下创建一个appRootStack文件夹下方只有一个index.js文件,来放置底部的tabBar;代码如下:
import React from 'react';
import { Image, StyleSheet } from 'react-native';
import { createBottomTabNavigator } from 'react-navigation-tabs';
import { createStackNavigator } from 'react-navigation-stack';
import { createAppContainer } from 'react-navigation';
// 引入页面
import MyAppIndex from '../MyApp';
import TaskIndex from '../Task';
import AppCenterIndex from '../AppCenter';
import UserInfoIndex from '../UserInfo';

// 引入每个tabBar下边的routes
import MyAppStackNav from '../MyApp/routes';

const TabNavigator = createBottomTabNavigator({
    MyAppIndex: {
        screen: MyAppIndex,
        navigationOptions: {
            tabBarLabel: '首页',
            tabBarIcon: ({ tintColor }) => (
                <Image
                    source={require('../resources/images/tab1.png')}
                    style={[styles.image, { tintColor }]} // 设置图标的颜色
                />
            ),
        },
    },
    TaskIndex: {
        screen: TaskIndex,
        navigationOptions: {
            tabBarLabel: '首页1',
            tabBarIcon: ({ tintColor }) => (
                <Image
                    source={require('../resources/images/tab2.png')}
                    style={[styles.image, { tintColor }]}
                />
            ),
        },
    },
    AppCenterIndex: {
        screen: AppCenterIndex,
        navigationOptions: {
            tabBarLabel: '首页2',
            tabBarIcon: ({ tintColor }) => (
                <Image
                    source={require('../resources/images/tab3.png')}
                    style={[styles.image, { tintColor }]}
                />
            ),
        },
    },
    UserInfoIndex: {
        screen: UserInfoIndex,
        navigationOptions: {
            tabBarLabel: '首页3',
            tabBarIcon: ({ tintColor }) => (
                <Image
                    source={require('../resources/images/tab5.png')}
                    style={[styles.image, { tintColor }]}
                />
            ),
        },
    },
},
{
    navigationOptions: {
    	headerShown: false,
        //header: null, 这里不用他的原因是,会报出警告
    },
    tabBarOptions: {
        activeTintColor: '#435C71', // 设置选中tab的时候的颜色
        inactiveTintColor: '#BCC3CA', // 设置未选中tab的颜色
        style: {bottom: -35}, // 设置整个tabBar的样式
    },
});

const styles = StyleSheet.create({
    image: {
        width: 24,
        height: 24,
    },
});

const stackRouterMap = {
    TabNavigator,
    // 下边这些分别是每个tabbar里边的页面及路径
    ...MyAppStackNav,
};

const RootStack = createStackNavigator(stackRouterMap);

const AppContainer = createAppContainer(RootStack);

export default AppContainer;
3.将上述步骤2中暴露的,在根目录下的app.js中引入,代码如下:
import React, { Component } from 'react';
import {
  SafeAreaView,
  StyleSheet,
  StatusBar,
} from 'react-native';
import AppContainer from './source/appRootstack';

class App extends Component {
  render() {
    return (
        <SafeAreaView style={{flex:1}}>
        	<StatusBar translucent backgroundColor="transparent" />
            <AppContainer />
        </SafeAreaView>
    );
  }
}

const styles = StyleSheet.create({
  
});

export default App;
4.展示效果

在这里插入图片描述

5.下期介绍头部导航和路由传参

https://blog.csdn.net/Jump_Monkey/article/details/103993403

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native,可以使用React Navigation库来实现路由导航。下面是一个简单的例子,演示如何在同一个页面渲染不同的页面: 首先,在终端运行以下命令来安装React Navigation库: ``` npm install @react-navigation/native ``` 接下来,安装Stack Navigator: ``` npm install @react-navigation/stack ``` 然后,在App.js添加以下代码: ```javascript import React from 'react'; import { NavigationContainer } from '@react-navigation/native'; import { createStackNavigator } from '@react-navigation/stack'; import HomeScreen from './screens/HomeScreen'; import SettingsScreen from './screens/SettingsScreen'; const Stack = createStackNavigator(); export default function App() { return ( <NavigationContainer> <Stack.Navigator> <Stack.Screen name="Home" component={HomeScreen} /> <Stack.Screen name="Settings" component={SettingsScreen} /> </Stack.Navigator> </NavigationContainer> ); } ``` 在上面的代码,我们创建了一个名为`Stack`的StackNavigator对象,并将其包装在`NavigationContainer`。在`Stack.Navigator`,我们定义了两个屏幕:`Home`和`Settings`,分别与`HomeScreen`和`SettingsScreen`组件相关联。 接下来,我们需要创建两个组件`HomeScreen`和`SettingsScreen`,并在这些组件添加一些内容。例如,在`HomeScreen`,我们可以添加一个按钮,点击该按钮会导航到`SettingsScreen`: ```javascript import React from 'react'; import { View, Text, Button } from 'react-native'; export default function HomeScreen({ navigation }) { return ( <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}> <Text>Home Screen</Text> <Button title="Go to Settings" onPress={() => navigation.navigate('Settings')} /> </View> ); } ``` 在上面的代码,我们使用`navigation.navigate('Settings')`来导航到`SettingsScreen`。 最后,我们需要创建`SettingsScreen`组件,例如: ```javascript import React from 'react'; import { View, Text } from 'react-native'; export default function SettingsScreen() { return ( <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}> <Text>Settings Screen</Text> </View> ); } ``` 现在,我们已经完成了一个简单的导航应用程序,可以在同一个页面渲染不同的屏幕。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值