如何在ag-grid v30+中合规获取gridOptions.rowData?
获取AG Grid中rowData的推荐方式
首先明确:依赖内部API(比如beans.gos)获取rowData是不推荐的,这类内部实现无官方文档保障,版本迭代中随时可能变更,极易导致升级后代码崩溃。以下是几种符合官方规范、稳定可靠的获取方式:
1. 直接持有rowData的引用
这是最稳妥的方案:
- 初始化AG Grid时,将传入
gridOptions.rowData的数据源变量保留在组件/模块作用域内,后续直接访问该变量即可。
// 初始化阶段 const myRowData = [/* 你的数据源 */]; const gridOptions = { rowData: myRowData, // 其他Grid配置 }; // 后续需获取rowData时直接调用myRowData console.log(myRowData);
如果需要同步Grid内部的修改(比如行编辑、数据更新后的最新状态),可结合下面的API方法使用。
2. 获取当前视图的行数据
若需要获取Grid当前显示的行(经过过滤、排序、分页后的结果),使用官方公开API提取:
// 获取当前渲染的所有行数据 const renderedRowData = params.api.getRenderedNodes().map(node => node.data); // 获取选中的行数据 const selectedRowData = params.api.getSelectedRows();
3. 获取完整数据集(未经过滤/排序)
如果需要获取Grid持有的完整原始数据,且不想手动维护引用,可通过行模型的公开方法获取:
针对默认的客户端行模型:
const fullRowData = params.api.getModel().getRowData();
该方法返回的是Grid当前存储的完整数据集,包含通过api.setRowData()更新后的最新数据。
关于内部API的注意事项
AG Grid的beans、gos这类内部API属于未公开的实现细节,官方不会提供文档支持,也不保证向后兼容性。依赖这类API会让你的代码绑定到特定版本的内部实现,后续版本升级时大概率出现兼容性问题,因此强烈建议只使用官方文档中列出的公开API。
内容的提问来源于stack exchange,提问作者Bhanu Prakash
相关产品推荐
相关产品推荐

