gpt4 book ai didi

javascript - Extjs 4.1 (rc2) - Ext.panel.Panel 上的扩展有时无法完成渲染

转载 作者:行者123 更新时间:2023-12-02 19:03:45 26 4
gpt4 key购买 nike

我有一个在 Ext.panel.Panel 上扩展的类。

简化代码:

Ext.define("some.namespace.MyOwnPanel", { 
extends: "Ext.panel.Panel",

constructor: function (config) {
var me = this;

Ext.apply(this, config);
this.callParent(arguments);

this.layout = "border";

this.centerPanel = Ext.create("Ext.panel.Panel" , {
region: "center",
layout: "fit",
border: false
});

this.westPanel = Ext.create("Ext.panel.Panel", {
region: "west",
layout: "fit",
border: false
});

this.add(this.centerPanel);
this.add(this.westPanel);

this.on("afterrender", function () {
// create grid for center panel. Data is loaded with AJAX in that function and the component is also added to this.centerPanel
me.createGrid();
});
}
}

有时它可以工作并且 afterrender 事件被触发,但有时它不起作用,然后 Web 应用程序崩溃。没有给出错误,但任何 ext 组件的创建都会在该点之后停止。

我尝试过很多事情。原始代码主要是由同事编写的,有更多兼容 4.1 的 Extjs 3.1 代码的痕迹。我尝试将其重写为正确的 4.1 代码,但没有成功。我尝试将代码移至 initComponent 方法,但也失败了。

我对如何解决这个问题没有更多的想法。有没有人遇到过这样的事情,你是怎么做的?请告诉我!

最佳答案

我认为你需要创建 this.centerPanel = Ext.create("Ext.panel.Panel", { ...在 initComponent() 函数中:

initComponent: function() {
Ext.apply(this, {
centerPanel: Ext.create("Ext.panel.Panel" , { ... },
...
});
this.callParent(arguments);
}

不在构造函数中。

关于javascript - Extjs 4.1 (rc2) - Ext.panel.Panel 上的扩展有时无法完成渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14523158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com