Ag-grid:从 getRowNodeId 回调中检测到重复的节点 ID 107,这可能会导致您的网格出现问题
Ag-grid: duplicate node id 107 detected from getRowNodeId callback , this could cause issues in your grid
我打算在 ag-grid 数据table 上进行实时数据流传输,所以我将 DeltaRowData 用于 gridOptions 并添加了 getRowNodeId 方法以及 return 唯一值 'id'.
毕竟,我在我设置的一段时间内在我的网格 table 上获得了实时更新结果,但是有些行是重复的,所以我可以注意到每次加载更新数据时总计数都会增加一点。问题标题是来自浏览器控制台的警告消息,我收到了一堆具有不同 ID 号的消息。实际上不应该从下面 docs 执行此操作。这应该可以检测重复项,如果不存在则巧妙地添加新的重复项。 Ofc,有几种方法可以实时刷新数据,但我选择了这个,因为它说它有助于保留网格信息,如选定的行、滚动在网格上的当前位置等。我正在使用 vanilla js,不打算使用任何框架。
如何在不更改任何当前网格内容的情况下定期更新实时数据?代码没有错误,所以不要试图谈论任何错误。也许我对当前的实施有误,无论如何,我想知道这个想法或听听任何实施经验。
let gridOptions = {
....
deltaRowDataMode: true,
getRowNodeId = (data) => {
return data.id; // return the property you want set as the id.
}
}
fetch(loadUrl).then((res) => {
return res.json()
}).then((data) => {
gridOptions.api.setRowData(data);
})
...
如果你得到:
duplicated node warning
这意味着您的 getRowNodeId()
有 2 个不同行的 1 个值。
这是部分 from source:
if (this.allNodesMap[node.id]) {
console.warn("ag-grid: duplicate node id '" + node.id + "' detected from getRowNodeId callback, this could cause issues in your grid.");
}
所以尝试再次检查您的数据。
如果您 100% 确定存在与您的数据无关的错误 - 切断私人数据,创建一个 plinkr/stackblitz 示例来重现您的问题,然后它会更简单检查并帮助你。
我打算在 ag-grid 数据table 上进行实时数据流传输,所以我将 DeltaRowData 用于 gridOptions 并添加了 getRowNodeId 方法以及 return 唯一值 'id'. 毕竟,我在我设置的一段时间内在我的网格 table 上获得了实时更新结果,但是有些行是重复的,所以我可以注意到每次加载更新数据时总计数都会增加一点。问题标题是来自浏览器控制台的警告消息,我收到了一堆具有不同 ID 号的消息。实际上不应该从下面 docs 执行此操作。这应该可以检测重复项,如果不存在则巧妙地添加新的重复项。 Ofc,有几种方法可以实时刷新数据,但我选择了这个,因为它说它有助于保留网格信息,如选定的行、滚动在网格上的当前位置等。我正在使用 vanilla js,不打算使用任何框架。 如何在不更改任何当前网格内容的情况下定期更新实时数据?代码没有错误,所以不要试图谈论任何错误。也许我对当前的实施有误,无论如何,我想知道这个想法或听听任何实施经验。
let gridOptions = {
....
deltaRowDataMode: true,
getRowNodeId = (data) => {
return data.id; // return the property you want set as the id.
}
}
fetch(loadUrl).then((res) => {
return res.json()
}).then((data) => {
gridOptions.api.setRowData(data);
})
...
如果你得到:
duplicated node warning
这意味着您的 getRowNodeId()
有 2 个不同行的 1 个值。
这是部分 from source:
if (this.allNodesMap[node.id]) {
console.warn("ag-grid: duplicate node id '" + node.id + "' detected from getRowNodeId callback, this could cause issues in your grid.");
}
所以尝试再次检查您的数据。
如果您 100% 确定存在与您的数据无关的错误 - 切断私人数据,创建一个 plinkr/stackblitz 示例来重现您的问题,然后它会更简单检查并帮助你。