【iOS开发】(六)react Native 路由嵌套传参与框架原理(完)20240423

【iOS开发】(六)react Native 路由嵌套传参与框架原理(完)20240423
感谢拉钩教育的教学。

(五)我们介绍了四种路由导航,这一节我们介绍他们的嵌套传参和框架的整体原理。到这里,大家已经能用RN框架进行一些小项目的开发了。

目录标题

      • 一 路由嵌套
      • 二 路由传参
      • 三 架构原理

一 路由嵌套

import {Text, StyleSheet, View, Button} from 'react-native';
import React, {Component} from 'react';
import {createStackNavigator} from '@react-navigation/stack';
import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
import { NavigationContainer } from '@react-navigation/native';const Tab = createBottomTabNavigator();function FeedScreen(props) {// 跳转方法prop.navigation.navigate参数是路由名称也就是Stack.Screen namereturn (<View style={[styles.container]}><Text style={[styles.text]}>HomeScreen</Text><Buttontitle={'跳到Profile页面'}onPress={() => props.navigation.navigate('Profile')}/><Buttontitle={'跳到Settings页面'}onPress={() => props.navigation.navigate('Settings')}/></View>);
}function MessagesScreen(props) {return (<View style={[styles.container]}><Text style={[styles.text]}>NewsScreen</Text></View>);
}function ProfileScreen(props) {return (<View style={[styles.container]}><Text style={[styles.text]}>ProfileScreen</Text></View>);
}function SettingsScreen(props) {return (<View style={[styles.container]}><Text style={[styles.text]}>SettingsScreen</Text></View>);
}function Home() {return (<Tab.Navigator><Tab.Screen name="Feed" component={FeedScreen} /><Tab.Screen name="Messages" component={MessagesScreen} /></Tab.Navigator>);
}const Stack = createStackNavigator();export default class Index extends Component {render() {return (<NavigationContainer><Stack.Navigator><Stack.Screenname="Home"component={Home}options={{headerShown: false}}/><Stack.Screen name="Profile" component={ProfileScreen} /><Stack.Screen name="Settings" component={SettingsScreen} /></Stack.Navigator></NavigationContainer>);}
}const styles = StyleSheet.create({container: {flex: 1,justifyContent: 'center',alignItems: 'center',},text: {fontSize: 40,},
});

在这里插入图片描述

二 路由传参

import {Text, View, Button} from 'react-native';
import React from 'react';
import {createStackNavigator} from '@react-navigation/stack';
import {NavigationContainer} from '@react-navigation/native'; // 导入 NavigationContainerfunction HomeScreen({navigation}) {return (<View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}><Text>首页</Text><Buttontitle="前往详情"onPress={() => {navigation.navigate('Details', {itemId: 86,otherParam: '这里可以是任何你想要的内容',});}}/></View>);
}function DetailsScreen({route, navigation}) {const {itemId, otherParam} = route.params;return (<View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}><Text>详情页</Text><Text>itemId: {JSON.stringify(itemId)}</Text><Text>otherParam: {JSON.stringify(otherParam)}</Text><Buttontitle="再次前往详情"onPress={() =>navigation.push('Details', {itemId: Math.floor(Math.random() * 100),})}/><Button title="返回首页" onPress={() => navigation.navigate('Home')} /><Button title="返回" onPress={() => navigation.goBack()} /></View>);
}const Stack = createStackNavigator();export default function Index() {return (<NavigationContainer> <Stack.Navigator><Stack.Screen name="Home" component={HomeScreen} /><Stack.Screen name="Details" component={DetailsScreen} /></Stack.Navigator></NavigationContainer>);
}

在这里插入图片描述

三 架构原理

从启动过程,来理解架构设计
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/644559.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今心成长之路与人格频率学苑十年发展

在过去的十年里&#xff0c;今心老师以其非凡的人生经历和对人格频率学的深入探索&#xff0c;为无数人带来了巨大的鼓舞力量。他的成长之路充满坎坷与传奇&#xff0c;而人格频率学也在这十年间得到了长足的发展。      今心老师的少年时期颠沛流离&#xff0c;但他凭借坚…

【FMEA软件】FMEA,到底是给谁看的?

免费试用FMEA软件-免费版-SunFMEA FMEA&#xff0c;即故障模式与影响分析&#xff0c;是一种预防性的质量工具&#xff0c;广泛应用于各种行业&#xff0c;尤其是制造业和高科技领域。它的目的是在产品设计或过程设计阶段&#xff0c;通过系统地分析和识别潜在的故障模式&…

SAP Fiori开发中的JavaScript基础知识15 - 原型,object,constructor,class,继承

1. 前言 本文将介绍JavaScript中的核心概念 - 原型&#xff0c;并会介绍基于原型的应用场景object&#xff0c;constructor&#xff0c;class&#xff0c;继承。 本文会将这几个核心概念汇总在一篇博客中&#xff0c;因为这些概念是触类旁通的&#xff0c;希望对你有帮助。 …

MySQL数据库精讲001——概述

MySQL数据库精讲001——概述 文章目录 MySQL数据库精讲001——概述1.1 安装1.1.1 版本1.1.2 安装一、下载二、解压三、配置1. 添加环境变量2. 初始化MySQL3. 注册MySQL服务4. 启动MySQL服务5. 修改默认账户密码 四、登录MySQL五、卸载MySQL 1.1.3 连接1.1.4 企业使用方式(了解)…

解读DreamFusion:一个引人注目的AI生成内容领域的项目

什么是DreamFusion&#xff1f; DreamFusion使用2D扩散模型来实现文本到3D生成的任务。这项技术在ICLR 2023上获得了杰出论文奖&#xff0c;并成为了许多科研工作的基准。 简而言之&#xff0c;DreamFusion的目标是在没有3D数据监督的情况下&#xff0c;利用已有的2D生成模型根…

接口测试和Mock学习路线(中)

1.什么是 swagger Swagger 是一个用于生成、描述和调用 RESTful 接口的 WEB 服务。 通俗的来讲&#xff0c;Swagger 就是将项目中所有想要暴露的接口展现在页面上&#xff0c;并且可以进行接口调用和测试的服务。 现在大部分的项目都使用了 swagger&#xff0c;因为这样后端…

CentOS-7部署mysql、clickhouse并通过普罗米修斯、grafna监控告警

一、准备工作 1、系统环境 所用镜像&#xff1a;CentOS-7-x86_64-DVD-2009.iso 2、涉及安装包 3、克隆4台虚拟机 用途IP主机名Prometneus服务器192.168.15.129master被监控服务器1192.168.15.133node1mysql、clickhouse、grafana服务器192.168.15.134node2被监控服务器219…

LyricWikia, 一个让你玩物丧志的Python库

文章目录 LyricWikia: Python的歌词查找库背景LyricWikia是什么&#xff1f;安装简单的库函数使用方法场景示例搜索并显示歌词获取歌手的热门歌曲搜索并下载歌词 常见问题和解决方案总结 LyricWikia: Python的歌词查找库 背景 LyricWikia是一个用于查找和获取歌曲歌词的Python…

【Linux系统编程】第八弹---权限管理操作(中)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、修改文件权限的做法(二) 2、文件类型 3、可执行权限 4、创建文件/目录的默认权限 4.1、权限掩码 总结 前面一弹我们学…

MySQL基础之多表操作(多表查询,事务,索引)

目录 一、多表关系1.1 一对多1.2 外键约束1.3 一对一1.4 多对多 二、多表查询2.1 测试数据准备2.2 笛卡尔积2.3 内连接2.4 外连接2.5 子查询1.标量子查询2.列子查询3.行子查询4.表子查询 三、事务3.1 问题场景引入3.2 概念3.3 事务操作3.4 事务的四大特性ACID 四、索引4.1 概念…

干货|Python的交互式脚本式

Python交互式编程 我们可以在命令提示符中输入"Python"命令来启动Python解释器&#xff1a; $ python3执行以上命令后&#xff0c;出现如下窗口信息&#xff1a; $ python3 Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux Type "help&…

Netty 进阶

文章目录 1. 粘包与半包1.1 粘包现象1.2 半包现象1.3 现象分析1.4 解决方案1) 方法1&#xff0c;短链接2) 方法2&#xff0c;固定长度3) 方法3&#xff0c;固定分隔符4) 方法4&#xff0c;预设长度 2. 协议设计与解析2.1 为什么需要协议&#xff1f;2.2 redis 协议举例2.3 http…