У меня есть такой агрессивный компонент:
private gridOptions = {
columnDefs: this.columnDefs,
frameworkComponents: { buttonRenderer: ButtonRenderer},
pagination: true,
paginationPageSize: 20,
cacheBlockSize: 20,
// server side paging
rowModelType: 'infinite',
datasource: this.dataSource
};
private dataSource: IDatasource = {
getRows: (params: IGetRowsParams) => {
var query = { startrow: params.startRow,
endrow: params.endRow,
company_name: this.companyName,
company_address: this.companyAddress,
company_capital: this.companyCapital
};
this.http.post(environment.api_url + "/register/search",query).subscribe((results:any) => {
params.successCallback(results.data, results.totalRecords);
this.gridApi.refresh();
});
}
};
При первой загрузке agrid показывает нормально. Если я нажимаю следующую страницу, я получаю такую ошибку:
ОШИБКА Ошибка: «ag-Grid: не удается заставить сетку рисовать строки, когда она находится в середине строк рисования. Ваш код, вероятно, вызвал метод API сетки, когда сетка находилась на этапе визуализации. Чтобы преодолеть это, поместите вызов API в тайм-аут, например, вместо api.refreshView () вызовите setTimeout (function () {api.refreshView (), 0}). Чтобы узнать, какая часть вашего кода вызвала обновление, проверьте эту трассировку стека. "
Есть ли какой-нибудь пример для ссылки? Я поискал, но все, кажется, справляются без этой проблемы.
Кстати: я использую angular 8, aggrid 22.1.1