React Navigation 是 React Native 中一个非常流行的导航库,它提供了多种导航模式,例如栈导航(Stack Navigator)、标签页导航(Tab Navigator)和抽屉导航(Drawer Navigator)等。要实现路由跳转的功能,你需要先安装 React Navigation 以及相应的依赖库,然后配置你的导航器,最后在应用中使用这些配置来进行页面跳转。

移动端有个常用的UI控件导航控制器,在RN里面就是Navigator控件。今天在说Navigator之前先说个不是很恰当的比喻用来解释Navigator的工作流程:平时在看电视的时候我们都会用遥控器切换电视机播放的频道,在遥控器上面你不仅可以使用上一个、下一个这种按键来切换频道也可以手动输入频道数来跳转到指定的频道,在我看来这个过程就是使用navigator进行页面跳转的过程。

以下是一个基本的步骤指南,用于在 React Native 项目中实现路由跳转:

  1. 安装 React Navigation

首先,你需要安装 React Navigation 及其依赖库。打开终端,运行以下命令:

npm install @react-navigation/native

在这里插入图片描述

  1. 配置 React Navigation

栈导航示例:

在你的项目中,创建一个导航器文件(例如 AppNavigator.js),并设置栈导航:

import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import HomeScreen from './HomeScreen'; // 导入你的屏幕组件
import DetailsScreen from './DetailsScreen'; // 导入另一个屏幕组件

const Stack = createStackNavigator();

function AppNavigator() {
  return (
    <NavigationContainer>
      <Stack.Navigator initialRouteName="Home">
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen name="Details" component={DetailsScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

export default AppNavigator;
  1. 在应用中使用导航器

AppNavigator 组件添加到你的应用入口文件(如 App.js)中:

import * as React from 'react';
import AppNavigator from './AppNavigator'; // 导入你的导航器组件

function App() {
  return <AppNavigator />;
}

export default App;
  1. 进行页面跳转

在你的屏幕组件中,你可以使用 navigation.navigate() 方法来跳转到另一个屏幕:

import * as React from 'react';
import { Button, View, Text } from 'react-native';

function HomeScreen({ navigation }) {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Home Screen</Text>
      <Button
        title="Go to Details"
        onPress={() => navigation.navigate('Details')} // 使用 navigate 方法跳转
      />
    </View>
  );
}

export default HomeScreen;

运行你的应用

确保你的开发环境已正确设置,然后运行你的应用:接下来通过打包命令npn run harmony将reactNative的代码打包成为bundle,这样可以进行在开源鸿蒙OpenHarmony中进行使用。

npm run harmony

在这里插入图片描述

接下来将bundle文件复制到鸿蒙的项目工程中进行引入,然后,正常打包后,可以看到以下的运行效果:

这样,你就可以在 React Native 应用中使用 React Navigation 来实现页面间的跳转了。

请添加图片描述
在浏览器中我们可以通过a标签与url实现不同页面之间的跳转,利用浏览器的返回按钮返回之前浏览的页面,但是在React Native中却没有集成内嵌的全局栈来实现这个界面的跳转,因此需要使用第三方库来实现这个功能。React Navigation就是这样一个源于ReactNative社区的用于实现界面导航的js库。通过如下方法安装react navigation到你的项目中。

欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐