DataTable 更新到 1.11 销毁返回错误

Posted

技术标签:

【中文标题】DataTable 更新到 1.11 销毁返回错误【英文标题】:DataTable update to 1.11 destroy returning error 【发布时间】:2021-11-18 23:35:59 【问题描述】:

我的应用在 1.10.24 和 1.10.25 版本上运行良好。

最近我正在尝试更新软件包并移至 1.11.3,但我开始遇到错误。

我的代码相当简单。但是逻辑;是我有一个Start Process 按钮,当按下该按钮时,某些数据会在服务器上进行处理,并且响应来自使用table.add() 添加到表中的web-socket,这第一次可以正常工作。但是用户可以再次按下按钮来重新处理服务器上的数据。为此,我正在收拾桌子。

$('#testGrid').DataTable().destroy();

我收到以下错误

dataTables.colResize.js:262 Uncaught TypeError: Cannot read properties of null (reading 'dt')
    at ColResize._fnStateSave (dataTables.colResize.js:262)
    at jQuery.fn.init.<anonymous> (dataTables.colResize.js:249)
    at jquery.dataTables.js:6754
    at Function.map (jquery.js:467)
    at _fnCallbackFire (jquery.dataTables.js:6753)
    at _fnSaveState (jquery.dataTables.js:6405)
    at _Api.<anonymous> (jquery.dataTables.js:8815)
    at _Api.iterator (jquery.dataTables.js:7145)
    at _Api.<anonymous> (jquery.dataTables.js:8804)
    at _Api.visible (jquery.dataTables.js:7312)

let testGrid = $('#testGrid').DataTable();
testGrid.clear().draw();

没有错误,按下进程按钮后,我尝试添加数据时抛出错误

Uncaught TypeError: Cannot set properties of undefined (setting '_aData')
    at _Api.<anonymous> (jquery.dataTables.js:8278)
    at _Api.data (jquery.dataTables.js:7312)
    at results-timeline-grid.js:254
    at arrayEach (_arrayEach.js:16)
    at Function.forEach (forEach.js:43)
    at Class.updateDataSource (results-timeline-grid.js:235)
    at Class.onDataUpdated (data-grid.js:31)
    at sendEvent (index.js:219)
    at Class.trigger (evented.js:113)
    at Class.publish (event-bus.js:11)

如前所述,我的代码在 1.10.24、1.10.25 上运行良好

【问题讨论】:

你能提供一个minimal reproducible example吗? 抱歉这么晚才回复,焦点转移到了别的事情上。无论如何,今天我试图解决这个问题,并认为jquery.dataTables.colResize.js 插件已经过时了。所以更新了我所有的插件,它正在工作 【参考方案1】:

我也在使用其他插件,但没有更新。更新这些插件后就解决了

【讨论】:

以上是关于DataTable 更新到 1.11 销毁返回错误的主要内容,如果未能解决你的问题,请参考以下文章

如何销毁数据表

升级到 django 1.11 多对多列未找到

使用 $.fn.DataTable.tables() 时销毁特定表

在相关模型更新销毁之前,错误不会传播

DataTable.GetChanges() 返回 null

1.11守护线程