快應用如何避免讀取undefined變數的屬性導致報錯
現象描述
這是 JS 開發中常見的錯誤。對一個值為 null 或 undefined 的變數取屬性就會報錯。例如:
<!-- a = {}; --> <text>{{ a.b.c }}</text> <!-- Error: Cannot read property 'c' of undefined -->
解決方法
1 、&& 方法,透過邏輯運算的執行順序來規避錯誤。程式碼如下:
app.ux程式碼如下:
<text>{{ a && a.b && a.b.c }}</text>
2 、 在 ViewModel 上增加函式方法
推薦方案 2 ,在 ViewModel 上建立一個 checkEmpty 函式。示例程式碼如下:
export default { checkEmpty(...args) { let ret if (args.length > 0) { ret = args.shift() let tmp while (ret && args.length > 0) { tmp = args.shift() ret = ret[tmp] } } return ret || false } }
這樣,就可以方便的呼叫了。
<text>{{checkEmpty(a, 'b', 'c')}}</text>
原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0201454975951760782?fid=0101271690375130218
原作者:Mayism
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2782389/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 快應用如何避免JSON.parse()解析出錯JSON
- 如何處理快取導致的無效曝光快取
- [譯] RxJS: 避免因濫用 switchMap 而導致錯誤JS
- Python - 物件導向程式設計 - 類變數、例項變數/類屬性、例項屬性Python物件程式設計變數
- 快取一致性快取
- javascript 將變數值作為物件屬性 獲取物件對應的值JavaScript變數物件
- Java系列-如何讀取.properties屬性檔案Java
- 如何分析SAP UI5應用的undefined is not a function錯誤UIUndefinedFunction
- iOS runtime實戰應用:成員變數和屬性iOS變數
- XMl 檔案屬性的讀取XML
- Java屬性檔案的讀取Java
- Containerd 的 Bug 導致容器被重建!如何避免?AI
- js檔案中如何讀取app.ux中的全域性變數JSAPPUX變數
- 快取一致性?get?快取
- jquery 操作HTML data全域性屬性快取的坑jQueryHTML快取
- Jmeter屬性和變數JMeter變數
- js如何獲取給定屬性的屬性值JS
- 快取高一致性:Meta的快取失效解決方案快取
- Bitcode導致的編譯報錯編譯
- java由於越界導致的報錯Java
- 資料庫和快取的一致性如何保證資料庫快取
- 如何保證快取和資料庫的一致性?快取資料庫
- 由Nginx的DNS快取導致的訪問404NginxDNS快取
- Laravel 中的快取,屬性沒了,類沒了如何處理?Laravel快取
- golang變數作用域問題-避免使用全域性變數Golang變數
- 誤修改PATH屬性 導致大多數命令都不能用
- 快取一致性協議快取協議
- 踩坑系列:MySql only_full_group_by配置,竟導致所有應用報錯?MySql
- 快取淘汰、快取穿透、快取擊穿、快取雪崩、資料庫快取雙寫一致性快取穿透資料庫
- node 報錯 deprecated undefinedUndefined
- js如何獲取指定物件中含有屬性的個數JS物件
- vue3如何將 app 全域性變數物件變為響應式並監聽到某個屬性的改變VueAPP變數物件
- 物件屬性讀取(核心原始碼)物件原始碼
- CSS 自定義屬性(變數)CSS變數
- 讀《我和Labview》7控制元件的區域性變數和屬性View控制元件變數
- 新增ijkplayer-java 導致的報錯Java
- MySQL半一致性讀導致語句級Binlog複製錯誤MySql
- Win10系統如何清理應用商店快取_win10清理應用商店快取的方法Win10快取