从零开始之如何在React Native中使用导航

news/2024/7/15 17:59:11 标签: react native, react.js, javascript

好的,让我们开始学习如何在React Native中使用导航。

  1. 安装React Navigation

首先,你需要安装React Navigation库。在项目文件夹中打开终端窗口,并运行以下命令:

npm install @react-navigation/native
或者
yarn add  @react-navigation/native

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


这将安装React Navigation库及其依赖项。

接着,你需要安装React Navigation的堆栈导航器。在终端窗口中运行以下命令:

npm install @react-navigation/stack
//或者yarn add @react-navigation/stack

  1. 创建屏幕组件

在项目中创建一个新的文件夹,例如“screens”,用于存放你的屏幕组件。接着,在该文件夹中创建两个新的文件,例如“HomeScreen.js”和“DetailsScreen.js”,用于编写你的两个屏幕组件。

在“HomeScreen.js”文件中,编写以下代码:

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

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

export default HomeScreen;

在该文件中,我们创建了一个名为HomeScreen的函数式组件。该组件接受一个名为“navigation”的属性,用于处理导航逻辑。在该组件中,我们使用View组件来创建一个包含文本和按钮的屏幕。当用户点击按钮时,我们使用navigation.navigate()方法将用户导航到Details屏幕。

在“DetailsScreen.js”文件中,编写以下代码:

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

const DetailsScreen = ({ navigation }) => {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Details Screen</Text>
      <Button
        title="Go to Home"
        onPress={() => navigation.navigate('Home')}
      />
    </View>
  );
}

export default DetailsScreen;

在该文件中,我们创建了一个名为DetailsScreen的函数式组件。该组件接受一个名为“navigation”的属性,用于处理导航逻辑。在该组件中,我们使用View组件来创建一个包含文本和按钮的屏幕。当用户点击按钮时,我们使用navigation.navigate()方法将用户导航回Home屏幕。

  1. 创建导航器

在项目中创建一个新的文件,例如“Navigator.js”,用于编写你的导航器。在该文件中,编写以下代码:

import React from 'react';
import { createStackNavigator } from '@react-navigation/stack';
import HomeScreen from './screens/HomeScreen';
import DetailsScreen from './screens/DetailsScreen';

const Stack = createStackNavigator();

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

export default Navigator;

在该文件中,我们使用createStackNavigator()方法创建一个名为Stack的堆栈导航器。在该导航器中,我们定义了两个屏幕:Home和Details。我们将这些屏幕与之前创建的组件文件(HomeScreen.js和DetailsScreen.js)相关联。

  1. 在应用程序中使用导航器

在应用程序的主文件中,例如“App.js”,引入你的导航器:

import React from 'react';
import Navigator from './Navigator';

const App = () => {
  return (
    <Navigator />
  );
}

export default App;

这个文件中,我们引入了刚才创建的导航器,并将其作为组件放置在应用程序中。

  1. 运行应用程序

最后,运行应用程序,查看你的导航器是否正常工作:

react-native run-android

或者

react-native run-ios

你应该能够在模拟器或真机上看到一个具有两个屏幕的应用程序,用户可以在这两个屏幕之间进行导航。

这就是使用函数式组件在React Native中使用导航的基本步骤。你可以继续学习更高级的React Navigation功能,例如自定义标题、传递参数等等。

注意事项

当我们添加这些库之后,比如react-native-safe-area-context 可能就编译卡住或者失败提示kotlin 等错误, 那经过观察build.gradle ,会取到kotlinVersion ,我们可以指定 kotlinVersion = "1.6.20" 版本, 国内下载库的时候,非常慢,我们可以设置阿里云镜像仓库。

...
buildscript {
    ext {
        buildToolsVersion = "33.0.0"
        minSdkVersion = 21
        compileSdkVersion = 33
        targetSdkVersion = 33

        // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
        ndkVersion = "23.1.7779620"
        kotlinVersion = "1.6.20"
    }
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/public/'
        }
        maven {
            url 'https://maven.aliyun.com/repository/central'
        }
        maven {
            url 'https://maven.aliyun.com/repository/google/'
        }
        maven {
            url 'https://maven.aliyun.com/repository/gradle-plugin/'
        }
        google()
        mavenCentral()
    }
    ...
buildscript {
    def kotlin_version = rootProject.ext.has('kotlinVersion') ? rootProject.ext.get('kotlinVersion') : project.properties['RNSAC_kotlinVersion']

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
    }
}

def getExtOrDefault(name, defaultValue) {
    return rootProject.ext.has(name) ? rootProject.ext.get(name) : defaultValue
}

http://www.niftyadmin.cn/n/369174.html

相关文章

《数据库应用系统实践》------ 公园游客日流量管理系统

系列文章 《数据库应用系统实践》------ 公园游客日流量管理系统 文章目录 系列文章一、需求分析1、系统背景2、 系统功能结构&#xff08;需包含功能结构框图和模块说明&#xff09;3&#xff0e;系统功能简介 二、概念模型设计1&#xff0e;基本要素&#xff08;符号介绍说明…

【Python REST API】零基础也能轻松掌握的学习路线与参考资料

REST&#xff08;Representational State Transfer&#xff09;是一种基于HTTP协议的软件架构风格&#xff0c;用于构建分布式网络应用程序。Python是一种功能强大的编程语言&#xff0c;它具有丰富的库和框架&#xff0c;可以使用Python编写RESTful API。本篇文章将详细介绍Py…

如何在 ubuntu 下安装英伟达 GPU 的驱动程序?

在 Ubuntu 下安装 NVIDIA GPU 驱动程序的方法如下&#xff1a; 打开终端&#xff0c;并检查您的 GPU 型号&#xff1a;lspci | grep -i nvidia。如果您已经知道您的 GPU 型号&#xff0c;可以跳过此步。 添加 NVIDIA 的软件源。 首先&#xff0c;确认您的系统已经安装了 Secur…

网络通信IO模型上

计算机组成 计算机由软件和硬件组成&#xff0c;软件包括CPU、内存等&#xff0c;硬件包括主板&#xff0c;磁盘&#xff0c;IO设备&#xff08;网卡、鼠标、键盘等&#xff09;、电源按钮。 内核程序加载过程 当接通电源的时候1、BIOS就会把它的一段代码放入了内存当中&#…

从原理总结chatGPT的Prompt的方法

一 什么是chatGPT chatGPT全称是Generative Pre-trained Transformer&#xff0c;它是一种专注于对话生成的语言模型&#xff0c;可以根据用户的文本输入&#xff0c;做出相应的智能回答。chatGPT是由OpenAI于2018年研发的语言模型&#xff0c;其中OpenAI是于2015年由特斯拉的…

AI准研究生应该掌握的Linux知识

1. Linux 基础1.1 系统目录结构1.1.1 /1.1.2 /bin1.1.3 /etc1.1.4 /usr1.1.5 /root或&#xff5e;1.1.6 /home1.1.7 /var 1.2 常用命令1.2.1 pwd1.2.2 cd1.2.3 ls1.2.4 more1.2.5 head1.2.6 tail1.2.7 mkdir1.2.8 touch1.2.9 vi/vim1.2.10reboot1.2.11 halt1.2.12 ifconfig1.2.…

Windows桌面鼠标右键取消AMD选项

1、按 Win R 快捷键&#xff0c;输入" regedit ”打开注册表。 2、地址栏输入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions回车。 3、点击选择Shell Extensions文件夹&#xff0c;右键新建项&#xff0c;名称为Blocked。 4、点击选择…

一波三折,终于找到 src 漏洞挖掘的方法了【建议收藏】

0x01 信息收集 1、Google Hack 实用语法 迅速查找信息泄露、管理后台暴露等漏洞语法&#xff0c;例如&#xff1a; filetype:txt 登录 filetype:xls 登录 filetype:doc 登录 intitle:后台管理 intitle:login intitle:后台管理 inurl:admin intitle:index of /查找指定网站&…