微信小程序options传参调用onLoad出错TypeError: Cannot read property “ID“ of undefined的解决方法
发表人:金马 | 2022-04-28

夜已深,手不停继续敲打着代码。

在开发微信小程序时,需要用到传参,类似于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简单,但还是记录一下,以免再次遇到这种情况。

我来说两句(0)
:zui: :wink: :twisted: :roll: :oops: :mrgreen: :love: :lol: :jidong: :idea: :han:
发表评论(Ctrl+Enter)
—— 金马科技公众号 ——
十二年 行业积累

砥砺前行路上,有您关注,相聚相研共话成长!

如有意向,请与我们联系

办公电话:0774-3838278 / QQ:154727262 / 微信:wztmma