[英]Grid store config throws “Uncaught TypeError: Cannot read property 'buffered' of undefined”
[英]EXTJS 6 Modern: buffered store + grid: Uncaught TypeError: Cannot read property 'length' of undefined
您应该在官方论坛中及时报告这是一个sencha错误。
store.getRange()
。 ( “开始索引。默认为零。//“结束索引。默认为最后一条记录。包括结束索引。” ) bufferedStore.getRange()
并未明确告诉我们可以在不使用参数的情况下调用它,但是我们可以安全地假定它是隐式的,因为它会覆盖父类的函数定义。 至少现代网格假设这样。 bufferedStore.getRange()
调用私有函数rangeCached
,它们的start
和end
(均为未定义) rangeCached
显然希望这两个是数字,或者为什么还要在start === 0 ? 0 : start - 1
甚至使用严格相等运算符start === 0 ? 0 : start - 1
start === 0 ? 0 : start - 1
? 如果只是这种故障,则可以使用替代来修复它,例如:
Ext.define('MyBufferedStoreOverride',{
override:'Ext.data.BufferedStore',
getRange:function(start, end, options) {
if(!Ext.isNumber(start)) start = 0;
if(!Ext.isNumber(end)) end = this.getCount();
me.callOverridden([start, end, options]);
}
})
但是我认为Sencha从未使用BufferedStore
测试他们的Modern Grid,因为一旦解决了第一个错误,就会抛出下一个错误。
尝试设置网格的高度,并使网格从“ Ext.grid.GridPanel”而不是“ Ext.grid.Grid”扩展。
在ExtJS 6.6.0中, bufferedStore
的文档说,对于现代工具包,必须使用Ext.data.virtual.Store
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.