Ag-grid: повторный идентификатор узла 107 обнаружен в обратном вызове getRowNodeId, это может вызвать проблемы в вашей сетке - PullRequest
0 голосов
/ 01 февраля 2020

Я собираюсь сделать потоковую передачу данных в режиме реального времени по данным ag-grid, поэтому я использовал DeltaRowData для gridOptions и добавил также метод getRowNodeId, который возвращает уникальное значение id. В конце концов, я получил живой результат обновления в своей таблице сетки в течение некоторого периода, который я установил, но некоторые строки дублируются, поэтому я могу заметить, что общее число немного увеличивается при каждой загрузке обновленных данных. Заголовок вопроса - предупреждающее сообщение из консоли браузера, я получил кучу этих сообщений с другим номером. На самом деле предполагается, что это не делается снизу документы . Предполагается, что он обнаружит дублирование и добавит новые, если они не существуют. Из c существует несколько способов получения обновленных данных в режиме реального времени, но я выбрал этот, так как он говорит, что он помогает сохранить информацию сетки, такую ​​как выбранные строки, текущее положение прокрутки в сетке и т. Д. c. Я использую 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);
})

...

1 Ответ

1 голос
/ 01 февраля 2020

Если вы получаете:

предупреждение дублированного узла

это означает, что ваш getRowNodeId() имеет 1 значение для 2 разных строк.

здесь часть из источника :

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, чтобы воспроизвести вашу проблему, и тогда было бы проще проверить и помочь вы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...