我正在制作一个自定义 stateProvider,我想为我的面板状态保存一些额外的内容。我读到,为了做到这一点,您所要做的就是重写面板类的 getState() 函数,但请确保调用父类(super class)方法。我尝试过这样的事情:
initComponent: function () {
Ext.apply(this, {
getState: function() {
this.superclass.getState.call();
return {
col: this.up().id,
row: this.row,
hidden: this.isHidden()
};
}
});
this.callParent(arguments)
}
但似乎不起作用。我对如何应用父类(super class)方法感到困惑......
文档对组件的 getState()
方法进行了以下说明:
实现更复杂状态的子类应该调用父类(super class)的实现,并将其状态应用于结果(如果要保存此基本状态)。
有什么我错的地方吗?
最佳答案
- 直接覆盖面板定义上的
getState
获取 super 方法调用的结果并应用您的更改
Ext.define('MyPanel', { ... getState: function() { var result = this.callParent(arguments); Ext.apply(result, { col: this.up().id, row: this.row, hidden: this.isHidden() }); return result; } })
关于javascript - 在 ExtJS 中重写 getState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25116668/