案发现场
昨天开发遇到了一个问题,报告了三个错误,具体信息如下
TypeError: Cannot read property 'constructor' of undefined
routeDone with a webviewId 65 that is not the current page
TypeError: Cannot read property 'data' of null
初步排查
第一个错误不明所以,不像是应用层面问题。
第二个错误可能是页面的问题。
第三个错误不明所以,不像是应用层面问题。
综上,可能是当前开发的页面有问题。
更改编译模式,进入其他页面,没有发现问题,进入当前开发页面,问题重现。
进一步排查
采用替换法。
将文件内容注释,逐步开启,排查问题点。
从第一个和第三个问题出发,我首先怀疑问题在 ts 文件中(使用 Typescript 开发)。
- 注释启动函数中的代码,问题依旧。
/**
* 生命周期函数--监听页面加载
*/
onLoad() {
// form.onInput(this)
// user.userReady()...
}
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
- 注释Page的定义,问题依旧
// Page<IPageData, IPageAction>({
Page({
- 恢复 Page 的初始定义,问题依旧
排除了 ts 文件问题,排查 wxml 文件问题。
从上到下,逐步排查。
然后发现一个值的表达式,模型的属性的名称多写了一个字母。
即便在页面定义去除的情况下,依然也会报错。
至此,问题解决。