reactjs - 为什么向 ag-grid-react 添加一列会导致所有单元格重新呈现?
问题描述
我有一个使用 ag-grid-react 21.0.1 的应用程序,当我添加一列时,所有单元格都会重新渲染,这非常重,对于较大的网格,应用程序完全无法使用。有什么办法可以防止这种情况发生吗?我传递完全相同的 rowData 并且不更改其他 columnDefs 的引用
解决方案
您应该使用columnApi.setColumnState()
来更新列的可见性。避免setState
(我假设在你的情况下),因为它是不必要的。Ag-grid 将为您处理剩下的事情。像这样的东西:
const show = true; // or false depend on what you want
const columnState = columnApi.getColumnState();
const newColumnState = columnState.map((c) => {
const nc = { ...c };
if (c.colId === targetColId) {
nc.hide = show;
}
return nc;
});
columnApi.setColumnState(newColumnState);
现场示例
推荐阅读
- python - 如何让变量引用全局变量,同时保持全局变量的值不变?
- fortran - 主程序中应该允许返回语句吗?
- actions-on-google - 让 Google Home 触发智能设备
- python - 如何使 python 控制台应用程序窗口居中?
- docker - Mac 上的 Service Fabric Docker 仅公开一个端口
- html - R:调整 HTML 文件中的标题
- reactjs - 复制 material.io 的 TextField 行为
- python - 抓取所有页面
- javascript - 在 Javascript 中没有自定义函数的情况下链接时将数组转换为 Set 的更短方法
- python - 用for循环附加列表并在python中的每个单元格中获取多个值