ExtJS 5 專案中按鈕調用某方法報錯,截圖顯示「不存在該函數調用」。
ExtJS 版本差異導致 API 變更。ExtJS 3/4/5/6/7 之間 Config、Method、Event 名稱常有調整。常見情況:
setText → setHtml 某些組件)。renderTo 行為變化)。Ext.Button → Ext.button.Button)。Ext.button.Button。getEl() ≠ getEL()。console.log(btn),展開 __proto__ 查看實際可用方法。var btn = Ext.create('Ext.button.Button', {
text: '點擊我',
renderTo: Ext.getBody(),
handler: function(btn, e) {
// 正確:在 handler 內部訪問按鈕實例
btn.setText('已點擊'); // API 存在
btn.disable(); // API 存在
// btn.notExistMethod(); // 錯誤:不存在
}
});
// 或在 Controller 中
// refs: [{ ref: 'myBtn', selector: 'button[action=myAction]' }]
// this.getMyBtn().setText('新文本');
package.json 或 app.json 明確指定 ExtJS 版本號。@types/extjs),編碼時即可發現不存在方法。_somePrivate),升級必破。