夜已深,手不停繼續(xù)敲打著代碼。
在開發(fā)微信小程序時,需要用到傳參,類似于URL請求的?id=1這樣的。
而有時候當參數沒有時會出現(xiàn)以下錯誤:
TypeError: Cannot read property "ID" of undefined
如果只是傳參沒參數導至這樣的錯誤,解決起來非常容易,看代碼:
onLoad: function (options) {
var that = this;
if (options.id != undefined) {
that.setData({
id: options.id,
});
}
},
加上這個判斷語句,基本可以解決錯誤。
但加了這條判斷語句還有種情況也會出現(xiàn)這樣的提示,如在當前頁做了些方法操作后需要直接調用如下代碼:
that.onLoad();
然后,TypeError: Cannot read property "ID" of undefined這個錯誤又出現(xiàn)了。
非常奇怪的問題呢。
上網查了一下資料,好像大家都沒有遇到過這種情況,沒有資料可參考。
于是逐步分析了代碼后,是調用that.onLoad時少了參數,需要把參數加進去,那到底是什么樣的傳參呢,于是在onload前頭加了句
console.log(options);
于是發(fā)覺打印出來的是:
{id:"1"}
原來是對象型的字符串參數,這就好辦了,在調用onLoad()的時候,直接附上參數,如:
that.onLoad('{id:"1"}');
最后問題解決,BUG簡單,但還是記錄一下,以免再次遇到這種情況。