You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React AgGrid服务端数据源getRows仅触发一次、滚动加载失效问题

问题原因及修复方案

    1. 移除服务端模式下的rowData参数
      服务端行模型(rowModelType="serverSide")由AG Grid内部管理行数据,你同时传入rowData={rows}会导致Grid优先使用静态行数据,跳过服务端拉取逻辑,自然不会生成分页参数,request.startRow和request.endRow为undefined。直接删除AgGridReact组件上的rowData={rows}属性即可。
    1. 修正successCallback的传值
      getRows成功回调的第二个参数需要传入数据集总行数,对应你接口返回的lastRow字段。你当前传入了当前页的endRow=10,会让Grid判定总数据量只有10条,加载完第一页后不会触发后续滚动加载,也不会出现滚动条。修改回调逻辑为:
successCallback(result.content, result.lastRow ?? -1);
    1. 对齐分页大小配置
      你配置的cacheBlockSize={100}代表Grid每次请求100条数据,但接口实际返回10条,会导致分页逻辑混乱。要么调整cacheBlockSize为10,要么通知后端按cacheBlockSize的配置返回对应数量的单页数据。
    1. 优化服务端数据源注册方式
      你当前直接将字面量{ getRows }传给serverSideDatasource,React每次渲染都会生成新对象导致Grid重置数据源。建议用useMemo包裹数据源,或者在onGridReady钩子中调用api.setServerSideDatasource注册,逻辑更稳定:
const serverSideDatasource = useMemo(() => ({ getRows }), [onRowsFetch]);
// 然后将这个变量传给AgGridReact的serverSideDatasource属性

内容的提问来源于stack exchange,提问作者zilijonas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 18:36:03