【React Natve】NetworkError 和 TouchableOpacity 組件

NetworkError公共組件

import SimpleLineIcons from "@expo/vector-icons/SimpleLineIcons";
import { StyleSheet, Text, View } from "react-native";export default function NetworkError() {return (<View style={styles.container}><SimpleLineIcons name={"drawer"} size={160} color={"#ddd"} /><Text style={styles.title}>抱歉,網絡連接出錯了!</Text></View>);
}const styles = StyleSheet.create({container: {flex: 1,backgroundColor: "#fff",alignItems: "center",justifyContent: "center",},title: {color: "#999",},
});
import { useEffect, useState } from "react";
import { StyleSheet, Text, View } from "react-native";
import NetworkError from "./components/shared/NetworkError";export default function App() {const [courses, setCourses] = useState([]);const [keyword, setKeyword] = useState("");const [error, setError] = useState(false);/*** 獲取搜索接口課程數據* @returns { Promise<void> }*/const fetchData = async () => {try {const res = await fetch(`http://192.168.1.138/search?q=${keyword}`);const { data } = await res.json();setCourses(data.courses);console.log("獲取到的數據是:", data.courses);} catch (error) {console.error("獲取數據失敗:", error);setError(true);}};useEffect(() => {fetchData();}, []);return (<View style={styles.container}>{error ? (<NetworkError />) : (<>{courses.map((course) => (<Text key={course.id}>{course.name}</Text>))}</>)}</View>);
}const styles = StyleSheet.create({container: {flex: 1,backgroundColor: "#fff",alignItems: "center",justifyContent: "center",},input: {height: 40,width: 300,margin: 12,padding: 10,borderWidth: 1,borderColor: "#ccc",borderRadius: 5,},
});

然后我們把后端服務停掉,然后接口請求肯定會報錯,直接進入我們的自定義錯誤處理:

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

這里使用到的圖標,都是 rn 內置的,無需安裝,以下是使用方法和所有的圖標:

https://docs.expo.dev/guides/icons/

https://oblador.github.io/react-native-vector-icons/

TouchableOpacity 組件

Button組件在iOSAndroid上的UI是不一致的。可以改用TouchableOpacity組件來開發。

這是一個點擊后可以改變透明度的組件,與它類似的還有組件:

  • TouchableHighlight:點擊后高亮
  • TouchableWithoutFeedback:點擊后無反饋

這三個組件,使用方式都是一樣的,只是在點擊后,顯示的有點小區別而已。

打開NetworkError.js,來引用一下:

import { TouchableOpacity } from 'react-native';

然后到提示信息下面,使用它:

<TouchableOpacity style={styles.reload} onPress={onReload}><Text style={styles.label}>重新加載</Text>
</TouchableOpacity>
  • 用起來非常簡單,直接用它,包住Text組件就行了。

打開App,按鈕的樣子已經出來了。這個按鈕,點擊它,按住不放的時候,它會有個透明度的改變。

這里有一個需要注意點,onPress={onReload} onReload 要么直接寫,要么寫成箭頭函數的形式 () => onReload() 。因為如果寫成 onReload() 是函數的直接調用,不論是否點擊,都會直接執行。所以,簡寫為 onReload ,需要傳參時寫為箭頭函數。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914741.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914741.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914741.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 驅動中 Timer / Tasklet / Workqueue 的作用與對比

Linux 驅動中 Timer / Tasklet / Workqueue 的作用與對比 &#x1f9e9; 1. 使用場景概覽&#xff08;對比表&#xff09;機制執行上下文是否可睡眠使用場景常用接口Timer中斷上下文? 不可睡眠延遲執行&#xff08;如防抖、超時處理&#xff09;add_timer() 等Tasklet軟中斷上…

JavaScript中關于proxy的作用以及和Object.defineProperty的區別

之前寫了一篇介紹 Object.defineProperty的&#xff0c;提到proxy&#xff0c;二者有一些共性&#xff0c;也都是前端框架Vue的核心機制&#xff0c;所以再寫一篇介紹一下proxy的基礎原理和使用。 在 JavaScript 中&#xff0c;Proxy 是 ES6 引入的一個元編程特性&#xff0c;用…

HTTP性能優化實戰技術

HTTP性能優化實戰技術文章大綱 理解HTTP性能優化的核心指標 關鍵指標&#xff1a;延遲、吞吐量、TTFB&#xff08;Time To First Byte&#xff09;、頁面加載時間影響性能的因素&#xff1a;網絡延遲、服務器響應時間、資源大小、協議效率 減少HTTP請求數量 合并資源文件&#…

ubuntu(22.04)系統上安裝 MuJoCo

在 Linux 系統上安裝 MuJoCo 的完整步驟如下&#xff1a; ??1. 下載 MuJoCo?? 訪問 MuJoCo 官方 GitHub下載最新 Linux 版本&#xff08;如 mujoco-3.3.4-linux-x86_64.tar.gz&#xff09;獲取對應的 SHA256 校驗值&#xff08;在發布頁面可以找到,&#xff0c;文件名后面…

理解大模型的對話和檢索能力

RAG和聯網搜索均通過“檢索生成”模式擴展模型能力&#xff0c;但RAG基于內部知識庫&#xff08;如企業文檔&#xff09;&#xff0c;適合專業領域問答&#xff1b;聯網搜索實時檢索互聯網&#xff0c;解決時效性問題&#xff08;如新聞、股價&#xff09;。RAG響應快且可控&am…

跟著Carl學算法--回溯【2】

IP復原&#xff08;難&#xff09; 力扣鏈接&#xff1a;IP復原 題目&#xff1a;有效 IP 地址 正好由四個整數&#xff08;每個整數位于 0 到 255 之間組成&#xff0c;且不能含有前導 0&#xff09;&#xff0c;整數之間用 . 分隔。 例如&#xff1a;"0.1.2.201"…

PyTorch生成式人工智能(17)——變分自編碼器詳解與實現

PyTorch生成式人工智能(17)——變分自編碼器詳解與實現 0. 前言1. 潛空間運算2. 變分自編碼器2.1 自編碼器與變分自編碼器對比2.2 模型訓練流程3. 構建變分自編碼器3.1 模型構建3.2 模型訓練3.3 生成圖像4. 向量運算小結系列鏈接0. 前言 雖然自編碼器 (AutoEncoder, AE) 在重…

SpringMVC2

一、接口聲明的穩定性- 接口聲明不能輕易變&#xff1a;接口是前后端、服務間通信的約定。要是接口的 URL、請求方法、參數、返回值變了&#xff0c;調用方&#xff08;比如前端、其他服務&#xff09;就得跟著改&#xff0c;容易出問題。所以設計接口要謹慎&#xff0c;別老變…

LVS集群實踐

一、LVS概念VS: Virtual Sever &#xff08;調度器&#xff09;RS: Real Sever &#xff08;資源主機&#xff09;CIP: Client IP &#xff08;用戶IP&#xff09;VIP: Virtual sever IP &#xff08;VS外網的IP&#xff0c;客戶訪問的IP&#xff09;DIP: Director IP &#xf…

使用Django框架構建Python Web應用

前言Django個高級Python Web框架&#xff0c;遵循MTV&#xff08;Model-Template-View&#xff09;設計模式&#xff1a;模型(Model)&#xff1a;數據層&#xff0c;定義數據結構模板(Template)&#xff1a;表現層&#xff0c;處理用戶界面視圖(View)&#xff1a;業務邏輯層&am…

[AI-video] 數據模型與架構 | LLM集成

第五章&#xff1a;數據模型與架構 歡迎來到第五章&#xff01; 在前幾章中&#xff0c;我們學習了網頁用戶界面&#xff08;UI&#xff09;&#xff08;控制面板&#xff09;、應用配置&#xff08;系統參數設置&#xff09;、任務編排&#xff08;視頻生成流程的總調度&…

HTTP 性能優化實戰:突破高并發瓶頸的工業級方案

在互聯網高并發場景中&#xff0c;HTTP 性能表現直接決定系統生死。當每秒請求量突破十萬級甚至百萬級時&#xff0c;哪怕 100 毫秒的延遲都會引發用戶流失、交易失敗等連鎖反應。本文基于五大行業實戰案例&#xff0c;拆解 HTTP 性能瓶頸的底層邏輯&#xff0c;輸出可直接落地…

Xsens人形機器人擬人動作AI訓練,提升機器人工作精度與效率

隨著人工智能與機器人技術的深度融合&#xff0c;人形機器人正從實驗室走向工業制造、醫療護理、公共服務等真實場景。然而&#xff0c;要讓機器人真正"像人類一樣工作"&#xff0c;其動作的流暢性、精準度與環境適應性仍是技術突破的關鍵。Xsens動作捕捉系統通過創新…

IIS網站間歇性打不開暴力解決方法

背景 網站使用 Asp.NET 框架開發&#xff0c;使用 SQL Server 2012 IIS 8.5 運行。開發上線以后&#xff0c;經常出現網站間歇性打不開&#xff0c;但是重啟 IIS 就可以正常訪問。 問題排查過程 打開日志記錄 觀察 CPU&#xff0c;內存&#xff0c;帶寬流量等占用正常&#xf…

JavaScript 動態訪問嵌套對象屬性問題記錄

問題描述不能解析 2 層 只能解析一層在 Vue 項目中&#xff0c;嘗試通過動態路徑&#xff08;如 otherInfo.businessPlacePhotoUrlLabel&#xff09;訪問或修改嵌套對象屬性時&#xff0c;發現 this[a.b.c] 無法正確解析&#xff0c;導致返回 undefined。錯誤示例removeImg(val…

7.17 滑動窗口 | assign

lc3015.法1&#xff1a;暴力bfs&#xff0c;數據范圍only 100&#xff0c;可以過法2&#xff1a;加入了x,y&#xff0c;可以思考加入的x,y影響了什么呢? 通過數學找規律class Solution { public:vector<int> countOfPairs(int n, int x, int y) {vector<int> ret(…

預訓練模型:大規模數據預學習范式——定義、原理與演進邏輯

本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我&#xff0c;一起撕掉過度包裝&#xff0c;學習真實的AI技術&#xff01; 以下基于權威教材、學術論文及行業技術報告&#xff0c;對“預訓練模型…

【kubernetes】--安全認證機制

文章目錄安全認證1. **身份認證&#xff08;Authentication&#xff09;**2. **授權&#xff08;Authorization&#xff09;**3. **準入控制&#xff08;Admission Control&#xff09;**4. **機密信息管理**5. **其他安全實踐**安全認證 Kubernetes 的安全機制覆蓋了從身份驗…

扣子工作流詳解

《扣子開發AI Agent智能體應用&#xff08;人工智能技術叢書&#xff09;》(宋立桓&#xff0c;王東健&#xff0c;陳銘毅&#xff0c;程東升)【摘要 書評 試讀】- 京東圖書 《扣子開發AI Agent智能體應用》案例重現 開發agent智能體的書籍-CSDN博客 工作流是指一系列相互關聯…

【一文解決】塊級元素,行內元素,行內塊元素

塊級元素&#xff0c;行內元素&#xff0c;行內塊元素&#xff01;盒模型1.標準盒模型&#xff08;box-sizing: content-box&#xff09;2.IE 盒模型&#xff08;box-sizing: border-box&#xff09;&#xff01;margin & padding1.margin、padding是什么2. 應用一、塊級元…