我正在使用 ag-grid 来表示 UI 中的一些数据。在使用 RxJS 设置行数据后,我遇到了自动调整列大小的问题。
我有一个设置数据的代码:
this.accountingStoreService.getPurchaseOrders().subscribe(
purchaseOrders => {
this.gridApi.setRowData(purchaseOrders);
}
);
如何调用 autoSize 以确保所有数据都已呈现?我试图使用processRowPostCreate但如果不设置超时它也不起作用:
this.gridOptions = {
rowData: this.purchaseOrders,
processRowPostCreate: (params) => {
this.generateRowEvents(params);
},
...
}
public generateRowEvents(params) {
params.addRenderedRowListener('load', this.autoSizeColumns());
}
public autoSizeColumns() {
const allColumnIds = [];
this.gridColumnApi.getAllColumns().forEach(function (column) {
if (!column.colDef.suppressSizeToFit) {
allColumnIds.push(column.colId);
}
});
setTimeout(() => {
this.gridColumnApi.autoSizeColumns(allColumnIds);
}, 300);
}
但是这种实现有时会不正确。
是否可以在不使用任何超时或类似的东西的情况下实现它?