Страница подкачки на стороне сервера aggrid 'не может заставить сетку рисовать строки, когда она находится в середине рисования строк' - PullRequest
0 голосов
/ 17 марта 2020

У меня есть такой компонент aggrid:

  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();
      });            
    }
  };

При первой загрузке aggrid он отображается нормально. Если я нажимаю следующую страницу, я получаю эту ошибку:

Ошибка: «ag-Grid: невозможно получить сетку для рисования строк, когда она находится в середине рисования строк. Ваш код, вероятно, вызвал метод API сетки, пока сетка находилась в стадии рендеринга. Чтобы преодолеть это, поместите вызов API в тайм-аут, например, вместо api.refreshView (), вызовите setTimeout (function () {api.refreshView (), 0}). Чтобы увидеть, какая часть вашего кода, который вызвал refre sh, проверьте эту трассировку стека. "

Есть ли какой-нибудь пример для ссылки? Я искал вокруг, но у всех, кажется, все в порядке без этой проблемы.

Кстати: я использую angular 8, aggrid 22.1.1

...