未捕获的类型错误:无法读取未定义的属性“internalId”(在扩展时对节点进行排序)
Posted
技术标签:
【中文标题】未捕获的类型错误:无法读取未定义的属性“internalId”(在扩展时对节点进行排序)【英文标题】:Uncaught TypeError: Cannot read property 'internalId' of undefined( WHILE SORTING NODES ON EXPAND) 【发布时间】:2013-07-09 21:14:53 【问题描述】:我想在树节点展开时对其进行排序。我一直在使用以下代码在 extjs 4.1.0 中使用 itemexpand
或 beforeItemExpand
事件来努力做到这一点。它在 ExtJS 4.2.1 中运行良好。
当我点击节点展开时,我得到了这个:
Uncaught TypeError: Cannot read property 'internalId' of undefined at:
ns[i].viewRecordId = records[i].internalId
in updateIndexes : function(startIndex, endIndex) method of Ext.view.AbstractView
class
代码:
var mystore = Ext.create('Ext.data.TreeStore',
fields: ['displayName', 'type', 'value', 'stateSize', 'percentOfParent'],
root:
"displayName": "state",
"name": "state",
"stateSize": 1.91,
"percentOfParent": 100.0,
"percentOfTotalstate": 100.0,
"leaf": false,
"cls": "highlight-new",
"children": [
"displayName": "Component Tree",
"name": "Tree",
"stateSize": 0.25,
"percentOfParent": 13.0,
"percentOfstate": 13.0,
"leaf": true,
"cls": "highlight-new",
"iconCls": "task",
,
"displayName": "crap",
"name": "Tree",
"stateSize": 0.25,
"percentOfParent": 13.0,
"percentOfstate": 13.0,
"leaf": true,
"cls": "highlight-new",
"iconCls": "task",
]
);
Ext.define('xyz.mytree',
extend: 'Ext.tree.Panel',
title: 'State',
alias: 'widget.state',
width: 150,
height: 150,
columns: [
xtype: 'treecolumn',
header: 'Name',
dataIndex: 'displayName',
width: 300
,
header: 'Type',
dataIndex: 'type',
width: 275
,
header: 'Value',
dataIndex: 'value',
align: 'left',
width: 275
,
header: 'Size (KB)',
dataIndex: 'stateSize',
align: 'right',
width: 95
,
header: '% Of Parent',
dataIndex: 'percentOfParent',
align: 'right',
width: 95
],
store: mystore,
listeners:
itemExpand: function (node)
sortFunction = function (o1, o2)
if (o1.data.displayName < o2.data.displayName)
return -1;
else if (o1.data.displayName > o2.data.displayName)
return 1;
else
return 0;
;
if (!node.expanded)
node.sort(sortFunction, false, false);
node.expanded = true;
,
constructor: function (config)
this.callParent(arguments);
);
在 4.1 中,如果使用的事件是 itemExpand 或 beforeItemExpand,我会收到上述错误。但是如果我使用 afterItemExpand 它工作正常。在 4.2.1 中,它也适用于其他事件...
任何想法为什么会发生这种情况?有没有其他选择?如果问题不清楚,请告诉我 谢谢
【问题讨论】:
您找到解决方案了吗? 【参考方案1】:我在使用Ext.view.View
时遇到了同样的问题
如建议here 我变了
itemSelector: 'div'
到
itemSelector: 'div#someId'
https://architectslog.wordpress.com/2013/05/13/sencha-ext-js-4-and-cannot-read-property-internalid-of-undefined/
【讨论】:
以上是关于未捕获的类型错误:无法读取未定义的属性“internalId”(在扩展时对节点进行排序)的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的类型错误:无法读取未定义的属性 toLowerCase
JQuery:未捕获的类型错误:无法读取未定义的属性“调用”
NextJS:未捕获的类型错误:无法读取未定义的属性(读取“属性”)
未捕获的类型错误:无法读取文本字段上未定义错误的属性“toLowerCase”