![](/img/trans.png)
[英]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.