首页 > 解决方案 > 是否有可能从 web api 每页仅获得 20 个第一个结果?

问题描述

我正在学习如何在反应中使用 ag-grid,但我发现了一个问题:

当我从 web api 获取数据时,结果非常好,比如 8600 个结果

问题

我想知道是否有可能,例如,每页只获得 20 个结果,而不是一次获得所有结果,或者仅通过使用这种洞察力准备的 api

一些代码:

//http request

onGridReady = params => {
  this.gridApi = params.api;
  this.gridColumnApi = params.columnApi;

  const httpRequest = new XMLHttpRequest();

  httpRequest.open( "GET", "https://raw.githubusercontent.com/ag-grid/ag-grid/master/packages/ag-grid-docs/src/olympicWinners.json" );
  httpRequest.send();
  httpRequest.onreadystatechange = () => {
    if (httpRequest.readyState === 4 && httpRequest.status === 200) {
      updateData(JSON.parse(httpRequest.responseText));
    }
  };
  
  const updateData = data => {
    this.setState({ rowData: data });
  };
};


//ag grid

render() {
  return (
      <div className="ag-theme-balham" style={{ height: '700px', width: '95%' }}>

        <AgGridReact
          columnDefs={this.state.columnDefs}
          defaultColDef={this.state.defaultColDef}
          defaultColGroupDef={this.state.defaultColGroupDef}
          columnTypes={this.state.columnTypes}
          rowData={this.state.rowData}
          onGridReady={this.onGridReady}
          pagination={true}          
          paginationPageSize={20}
        />
      </div>
  );
}

标签: reactjsapigetag-grid

解决方案


根据 HMR 评论回答我的问题:

答案是否定的,因为您请求的是 json 文件,而不是 json 端点。

如果您正在请求端点,那么您可以(例如)添加参数,例如 page=.. 和 size=..


推荐阅读