ag-grid cellRenderer не удалось отобразить ячейку после оценки значения
У меня есть встроенный cellRenderer для изменения значения ячейки, как показано ниже:
cellRenderer: function (params) {
if(params.value) {
return params.value * 100;
}
return '';
}
В режиме отладки я заметил, что он правильно вычисляет значение. Пожалуйста, найдите скриншот
Но, момент управления выходит из cellRenderer, он бросает ниже исключения:
ERROR TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
at CellComp.push../node_modules/ag-grid/dist/lib/rendering/cellComp.js.CellComp.afterCellRendererCreated (cellComp.js:582)
at Promise.push../node_modules/ag-grid/dist/lib/utils.js.Promise.then (utils.js:1543)
at CellComp.push../node_modules/ag-grid/dist/lib/rendering/cellComp.js.CellComp.createCellRendererInstance (cellComp.js:564)
at CellComp.push../node_modules/ag-grid/dist/lib/rendering/cellComp.js.CellComp.attachCellRenderer (cellComp.js:589)
at CellComp.push../node_modules/ag-grid/dist/lib/rendering/cellComp.js.CellComp.afterAttached (cellComp.js:100)
at rowComp.js:938
at Array.forEach (<anonymous>)
at RowComp.push../node_modules/ag-grid/dist/lib/rendering/rowComp.js.RowComp.callAfterRowAttachedOnCells (rowComp.js:936)
at RowComp.push../node_modules/ag-grid/dist/lib/rendering/rowComp.js.RowComp.insertCellsIntoContainer (rowComp.js:554)
at RowComp.push../node_modules/ag-grid/dist/lib/rendering/rowComp.js.RowComp.refreshCellsInAnimationFrame (rowComp.js:460)
У меня есть много других таких cellRenderer, которые работают нормально. Не уверен, что не так в этом конкретном. Например, ниже один работает просто отлично:
cellRenderer: function (params) {
return params.context.formatDate(params.data.createdDateTime);
}
я использую "ag-grid-enterprise": "^16.0.0",
и угловой 6.
1 ответ
Согласно @Sh. Комментарий Павла, сработало после обновления до return ''+ params.value * 100
,
Важно понимать, что cellRenderer
надеется string
взамен, так что он непосредственно добавляет его в DOM.
Как то, что вы возвращали, было number
собственно Node
не был создан (я думаю). Который был решен путем return '' + params.value * 100;
,