这通常发生在您构建版本并且没有嵌入所有需要的组件时。
例如,当您使用...
Ext.Image
...在您的代码中。
在没有...的情况下运行
Sencha app build xxx
... Sencha 将从 touch/src 组件文件夹中获取组件。
但是在您构建应用程序时,它不能再引用该文件夹,Sencha 将停止。
请打开控制台并注意如下警告:
[WARN][Anonymous] [Ext.Loader] Synchronously loading 'Ext.MessageBox';
consider adding 'Ext.MessageBox' explicitly as a require of the
corresponding class
您需要将这些添加到 App.js 的 requires 部分或您使用该项目的类(此处为 Ext.Messagebox)。
找出正在发生的事情的另一种方法是在浏览器中运行构建代码并查看控制台(因此,您运行 localhost/myapp/build/{package}/{myapp}/index 而不是 localhost/myapp/index.html .html)。
还有一件事可能会发生。这是异步操作的范围。像这样:
Ext.defer(function() {this.log(‘all good’);}, 500);
这不是你班级的范围。你需要使用:
Ext.defer(function() {this.log(‘all good’);}, 500, this);
或者你甚至可以使用...
Ext.bind()
...将范围绑定到函数。