如何解决如何解决未捕获的类型错误:无法读取属性“字段”制表符
我想做什么: 我有一个 Tabulator 表的数据序列化并存储在我的数据库中。在我的代码的这一部分中,我正在检索和解析数据。我需要将列数据放入一个数组中以放入我的 Tabulator 表中,其中包括列标题以及不同的设置,例如 headerSort: false
问题:
Uncaught TypeError: Cannot read property 'field' of undefined tabulator.js?ver=5.2.3:1615
at new Column (tabulator.js?ver=5.2.3:1615)
at ColumnManager._addColumn (tabulator.js?ver=5.2.3:670)
at tabulator.js?ver=5.2.3:650
at Array.forEach (<anonymous>)
at ColumnManager.setColumns (tabulator.js?ver=5.2.3:648)
at Tabulator._buildElement (tabulator.js?ver=5.2.3:9562)
at Tabulator._create (tabulator.js?ver=5.2.3:9418)
at new Tabulator (tabulator.js?ver=5.2.3:8616)
at displayeditTable (ccs-table-builder-script.js?ver=5.2.3:321)
at Object.success (ccs-table-builder-script.js?ver=5.2.3:215)
代码: ccs-table-builder-script.js
var obj = JSON.parse(data); //parses information from the database
var rows = obj['data'];
var columns = obj['titles'];
var colArray = [];
colArray.push(columns.forEach(restructureColumns));
var editTable = new Tabulator("#ccs-editing-table",{
data:rows,columns: colArray
}
function restructureColumns(item,index){
console.log(item.field);
console.log(item.title);
return {title:item.title,field:item.field,editableTitle:true,editor:"textarea",headerSort:false,headerClick:function (e,column) {
deleteColFunction(e,column);
}};
}
根据 console.log,我知道 item.field 和 item.title 被正确读取。
这是一个项目的输出:
editableTitle: "true" editor: "textarea" field: "col1" headerClick: "undefined" headerSort: "false" title: "col1"
[我这样做的原因是因为我需要 headerSort 之类的东西看起来像 headerSort: false not headerSort: "false"]
我的尝试: 我已经查看了其他类似问题的 StackOverflow 问题,但找不到将它们应用于我自己的代码的方法。
我绝对认为这是我自己的代码的问题,而不是 Tabulator。具体来说,我认为问题在于我命名为 title:item.title 和 field:item.field 的“restructureColumns”函数。
解决方法
实际上方法 forEach
没有返回值(所以它只为 undefined
返回 js
)。
这样做:
var colArray = [];
colArray.push(columns.forEach(restructureColumns));
//colArray is now [undefined]
您正在将 undefined
推入您的 colArray
。
也许您正在寻找这个:
var colArray = columns.map(restructureColumns);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。