我在看后台统计错误的时候发现报了如下错误
{"msg":"Uncaught TypeError: Cannot read property 'length' of null","url":"https://staticearly.ngmm365.com/nicomama/cocos2d-js-min.js","lineNo":1,"columnNo":797500,"error":{}}
然后查找发现指向的是findComponent函数:
function findComponent(node, constructor) { if (constructor._sealed) { for (var i = 0; i < node._components.length; ++i) { var comp = node._components[i]; if (comp.constructor === constructor) { return comp; } } } else { for (var _i = 0; _i < node._components.length; ++_i) { var _comp = node._components[_i]; if (_comp instanceof constructor) { return _comp; } } } return null; }
findComponent函数本身是由getComponent调用的,我主要有以下两点疑问:
- 如果node本身就是null的话,应该直接在外围调用getComponent的时候就报错了,而不会走到这个里面,这样理解应该没问题吧?
- findComponent的话有哪种可能_component是空吗? 看引擎代码似乎没有置空的操作?
有人知道怎么下手解决么? 从项目入手看的话有点难定位,因为非必现的,求解