










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