1、报错信息

在vue3,vue-cli5的环境中,出现 "Cannot convert undefined or null to object " 的报错信息,报错截图如下:

2、问题排查

  1. 备份Template里面的标记,排除是因为模板语法导致的
  2. 如果不是模板里的问题,那么很大概率就是js里出现的问题, 可能是在组件创建的时候,也可能是在组件创建完成,执行相关生命周期函数的时候导致的问题,比如created,mounted等,把created和mounted函数里执行的相关代码注释,发现还是报错,那比较大的可能性就是在extend:Base这一块,结合报错内容,可能是存在什么undefine或者null的对象转换,比较大的可能是基类组件的属性和继承组件的属性合并过程中,导致这个错误

控制台没有打印'page created',说明组件并没有创建成功 

3、问题定位

如果按照存在undefine或者null转换为对象的问题,因为基类组件的方法不多,问题就很好定位了,只有data()里是空的,基类执行合并的时候,data()作为应该返回一个数据对象,而此处返回的是undefine或者null,于是在合并的时候就报了这个问题

4、解决方法

在data()里返回一个对象,这样在基类组件的data和继承组件的data合并时,就不会导致这样的错误,如果存在键重复的情况是否会报其他错误?

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐