ExtJS错误解决 Cannot read property 'on' of undefined
背景
用ExtJS新写了一个功能,运行时控制台打印错误Cannot read property 'on' of undefined,出错代码位置是Ext.define.bindStoreListener。
分析
根据出错代码可以猜测出与store有关,但是依然没有头绪。对于新技术或未知问题,我只好祭出杀手锏“排除法”,先锁定问题所在。有计划的删除部分代码,再刷新页面尝试。然后,一遍遍重复直到不再报错。
最终,删除了一个combo控件后不再报错。这个控件中有个属性是store,应该是ExtJS在加载此处时出错。于是得出问题所在:页面控件中引用了store,但是Controller的stores属性没有加载。
解决方案
在Controller层添加要用的store。
1 Ext.define('XXX', { 2 extend : 'Ext.app.Controller', 3 ... 4 stores : [ '在此添加store'] 5 ...