快應用如何避免讀取undefined變數的屬性導致報錯
阿新 • • 發佈:2021-07-21
現象描述
這是JS開發中常見的錯誤。對一個值為null或undefined的變數取屬性就會報錯。例如:
1 2 3 |
<!--a={};-->
< text >{{a.b.c}}</ text >
<!--Error:Cannotreadproperty'c'ofundefined-->
|
解決方法
1、&&方法,通過邏輯運算的執行順序來規避錯誤。程式碼如下:
app.ux程式碼如下:
1 |
< text >{{a&&a.b&&a.b.c}}</ text >
|
2、在ViewModel上增加函式方法
推薦方案2,在ViewModel上建立一個checkEmpty函式。示例程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
export default {
checkEmpty(...args){
letret
if (args.length>0){
ret=args.shift()
lettmp
while (ret&&args.length>0){
tmp=args.shift()
ret=ret[tmp]
}
}
return ret|| false
}
}
|
這樣,就可以方便的呼叫了。
1 |
<text>{{checkEmpty(a, 'b' , 'c' )}}</text>
|
原文連結:https://developer.huawei.com/...
原作者:Mayism