В моем проекте Angular я только что обновил ag-grid-angular
и ag-grid-community
с версии 30.2.0 до 32.0.1, и теперь кажется, что GridReadyEvent больше не является собственностью GridReadyEvent
!
// Erorr: Property 'columnApi' does not exist on type 'GridReadyEvent<any, any>'.
onGridReady({ columnApi, api }: GridReadyEvent): void {
this.gridApi = api;
this.gridColumnApi = columnApi;
this.leads$
.pipe(
filter((data) => !!data),
takeUntil(this.destroyed$)
)
.subscribe((data) => {
const dataSource: IDatasource = {
rowCount: null,
getRows: ({ successCallback }) => successCallback(data, data.length),
};
api.setDatasource(dataSource); //Property 'setDatasource' does not exist on type 'GridApi<any>'.
});
}
Есть идеи, почему его удалили и что заменило?
Вот журнал обновлений ag-grid v31 о columns-api.
Я нашел Справочник о том, как перейти на новую версию. Кроме того, существует динамический способ перехода на новую версию. Вам просто нужно запустить:
npx @ag-grid-devtools/[email protected] migrate --from=$FROM_VERSION
Это исправит более 50% необходимых вам изменений, однако нам также необходимо внести исправления вручную.
столбецApi:
Если вы уже используете columnApi
, замените его на GridApi
:
ex: `columnApi.applyColumnState` should be `api.applyColumnState`
Некоторые методы могут изменить свое название:
getAllColumns --> getColumns
getSecondaryColumns --> getPivotResultColumns
Полный список здесь.
ГридАпи:
Большинство методов Set, таких как setDatasource
, setTreeData
и т. д., были удалены из этих методов и введены setGridOption
для установки свойств:
api.setDatasource(dataSource); --> api.setGridOption('datasource', dataSource);
команда cli облегчила мне много времени :)
Спасибо за ответ. Я искал динамичное и автоматическое решение для облегчения миграции, поскольку у меня действительно большой проект.