react Native 如何实现路由跳转,底部tab切换路由跳转,并隐藏页面路由系统头部显示

全部需要依赖
npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view

1. 安装相关所需要的库              

npm install @react-navigation/native
npm install @react-navigation/bottom-tabs
npm install @react-navigation/stack

   package.json 文件生成如下         

2.在app入口文件设置引用

import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';

3.初始化

// 引入需要的组件
import {
  Text,
  View,
  Image,
} from 'react-native';

//初始化基础路由
const Stack = createStackNavigator(); //基础路由
const Tab = createBottomTabNavigator();  //tab页面路由


4.导入需要展示跳转的组件

import home from  './pages/home /index'; // 确保路径正确  (tab首页
import tab2 './pages/tab2 /index'; // 确保路径正确 (tab第2页面
import HelloWorld from './pages/hello/hello'; // 确保路径正确
import Hi from './pages/hello/hi'; // 确保路径正确
import MyComponent from './pages/apii'; // 确保路径正确

5. 设置项目基础路由设置

function App(): React.JSX.Element {
  return (
      <NavigationContainer>
        <Stack.Navigator mode="modal">
            <Stack.Screen name="home" options={{title:'消息',headerShown: false}} component={TabBar} />
            <Stack.Screen name="hello " options={{title:'用户列表'}} component={HelloWorld }/>
            <Stack.Screen name="hi" options={{title:'所有订单'}} component={Hi}/>
        </Stack.Navigator>
      </NavigationContainer>
  );
}

//headerShown 隐藏默认头部name文字显示
//NavigationContainer 需要在根部,否则页面会有问题
//Stack.Screen 配置的是我需要路由跳转的页面

6.在第一个路由配置里设置编写TabBar页面

function TabBar(){
  return(
    <Tab.Navigator
      screenOptions={({route})=>({
        tabBarIcon:({focused,size,color})=>{
          let icon;
            //自定义tabbar 样式图片
          if(route.name==="消息"){
            icon = focused ?
             (
              <Image
                source={ require('./asstes/images/home1.png') }
                style={{ width: 25, height: 25, }} />
            ) : ( <Image
              source={ require('./asstes/images/home.png') }
              style={{ width: 25, height: 25, }} />)
          }
          return icon;
        }
      })}
    >
      <Tab.Screen name="消息" component={Message} options={{
        tabBarLabel: '消息',
        headerShown: false, // 这里设置为false隐藏标题
      }}/>
      <Tab.Screen name="我的" component={MyComponent} options={{
        tabBarLabel: '我的',
        // tabBarIcon: ({ color, size }) => (
        //   <Ionicons name="home" color={color} size={size} />
        // ),
        headerShown: false, // 这里设置为false隐藏标题
      }}/>
    </Tab.Navigator>
  )
}

tabbar页面

现在tabbar页面设置以及点击跳转就已经可以实现了

7.实现基础路由页面跳转

在需要跳转的组件内添加方法

例如:

const Home= ({navigation}) => {
    const renderItem = ({ item }) => <Item navigation={navigation} title={item.title}  sTitle={item.sTitle} dtime={item.dtime}/>;

    return (
      <View style={[styles.container,tw`bg-white`]}>
        <Button
          title="Go to Details"
          onPress={() => navigation.navigate('hello')}
            />
        </View>
        );
    };

### React Native实现页面导航与跳转的最佳实践 在 React Native 开发中,`React Navigation` 是最常用的库之一,用于处理页面之间的导航和跳转。以下是关于如何通过 `React Navigation` 实现页面导航与跳转的具体方法。 #### 安装依赖 为了使用 `React Navigation` 的功能,首先需要安装必要的依赖项[^3]: ```bash npm install @react-navigation/native npm install react-native-screens react-native-safe-area-context npm install @react-navigation/stack ``` 如果还需要底部标签栏,则可以额外安装以下包: ```bash npm install @react-navigation/bottom-tabs ``` #### 配置导航容器 创建一个根组件来配置整个应用程序的导航结构。通常会将此逻辑放在单独的一个文件中(如 `RootStack.js` 或 `MainTab.js`),将其导入到主入口文件 `App.js` 中[^2]: ```javascript import React from 'react'; import { NavigationContainer } from '@react-navigation/native'; import { createStackNavigator } from '@react-navigation/stack'; const Stack = createStackNavigator(); function RootStack() { return ( <NavigationContainer> <Stack.Navigator initialRouteName="Home"> <Stack.Screen name="Home" component={HomeScreen} /> <Stack.Screen name="Details" component={DetailScreen} /> </Stack.Navigator> </NavigationContainer> ); } export default RootStack; ``` 上述代码定义了一个简单的堆栈导航器,设置了两个屏幕:“Home” 和 “Details”。其中 `initialRouteName` 属性指定了启动时默认显示的第一个页面[^4]。 #### 页面跳转 要从当前页面跳转至另一个页面,可以通过传递给组件的 `navigation` 对象调用其内置的方法完成操作。例如,在某个按钮点击事件处理器内部执行如下命令即可触发跳转动作[^5]: ```javascript this.props.navigation.navigate('Details', { itemId: 86 }); ``` 这里传入的目标名称应匹配之前声明过的路由名;第二个参数是一个可选的对象形式数据负载,可用于携带附加信息供目标页读取利用。 对于更复杂的场景比如带参返回或者监听状态变化等情况,则可能需要用到其他高级特性如设置回调函数等进一步增强交互体验效果。 另外值得注意的是除了基本的 push/pop 动作之外还有 replace reset 等多种方式可供选择依据实际需求灵活运用从而达到最佳用户体验目的。 最后提到一种特殊类型的链接即锚点定位技术虽然不属于传统意义上的跨屏转移范畴但在某些特定场合下也非常有用处比如说长列表滚动视图内的快速定位服务等等这时候就可以考虑引入专门针对此类问题设计插件解决方案像前面所提及的那个第三方开源项目一样提供便捷易用API接口帮助开发者高效达成任务目标[^1]。 ```javascript // 示例:使用 react-native-anchors 进行锚点跳转 import Anchors from 'react-native-anchors'; <Anchors.Anchor id="section1">...</Anchors.Anchor> <Anchors.ScrollTo anchorId="section1" /> ``` 以上就是有关于怎样借助 React Navigation 库以及相关工具集成功构建起一套完善可靠的移动端应用内多级层次化浏览体系架构全过程介绍完毕希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值