【微信小程序自学之路】关于一些Uncaught TypeError异常的解决方案

WAService.js:17 Uncaught TypeError: Cannot read property ‘name’ of undefined

微信小程序有时候会出现一些很怪异的异常,单纯从错误描述上很难推测问题原因,从源码分析问题原因是可行

也许遇到过这样的错误:VM236 WAService.js:17 Uncaught TypeError: Cannot read property ‘name’ of undefined

如下:

1
2
3
4
5
6
7
8
9
10
11
VM236 WAService.js:17 Uncaught TypeError: Cannot read property 'name' of undefined
at z (VM236 WAService.js:17)
at re (VM236 WAService.js:17)
at Object.e (VM236 WAService.js:17)
at Gt (VM236 WAService.js:19)
at yn (VM236 WAService.js:20)
at question-item.js:2
at require (VM236 WAService.js:22)
at <anonymous>:56:7
at HTMLScriptElement.scriptLoaded (appservice?t=1568694222842:2134)
at HTMLScriptElement.script.onload (appservice?t=1568694222842:2146)

这个问题的原因,我们定位到源码 WAService.js :

1
2
3
4
5
6
...
} : (void 0 === o.public || o.public) && (n[r] = {
type: null === o.type ? null : o.type.name,
value: o.value
})
...

报错代码是 WAService.js 第17行 o.type.name

问题是 o.type 为 undefined,因此才出现 Cannot read property ‘name’ of undefined

这里的 o 是什么呢? 再仔细研究代码就知道这个 o 是小程序组件component的property里面的属性

于是查看组件properties代码,确实发现?

1
2
3
4
5
6
...
properties: {
question: Object,
name: ''
},
...

name竟然手误写成了 ‘’, 于是立马改过来

1
2
3
4
5
6
...
properties: {
question: Object,
name: String
},
...

至此,小程序完美运行

坚持原创技术分享,您的支持将鼓励我继续创作!