如何解决未捕获的类型错误:无法读取属性“字段”制表符

如何解决如何解决未捕获的类型错误:无法读取属性“字段”制表符

我想做什么: 我有一个 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?