夜已深,手不停继续敲打着代码。
在开发微信小程序时,需要用到传参,类似于URL请求的?id=1这样的。
而有时候当参数没有时会出现以下错误:
TypeError: Cannot read property "ID" of undefined
如果只是传参没参数导至这样的错误,解决起来非常容易,看代码:
onLoad: function (options) {
var that = this;
if (options.id != undefined) {
that.setData({
id: options.id,
});
}
},
加上这个判断语句,基本可以解决错误。
但加了这条判断语句还有种情况也会出现这样的提示,如在当前页做了些方法操作后需要直接调用如下代码:
that.onLoad();
然后,TypeError: Cannot read property "ID" of undefined这个错误又出现了。
非常奇怪的问题呢。
上网查了一下资料,好像大家都没有遇到过这种情况,没有资料可参考。
于是逐步分析了代码后,是调用that.onLoad时少了参数,需要把参数加进去,那到底是什么样的传参呢,于是在onload前头加了句
console.log(options);
于是发觉打印出来的是:
{id:"1"}
原来是对象型的字符串参数,这就好办了,在调用onLoad()的时候,直接附上参数,如:
that.onLoad('{id:"1"}');
最后问题解决,BUG简单,但还是记录一下,以免再次遇到这种情况。