如何在客户端过滤中使用服务器端分页?

时间:2020-01-19 13:52:15

标签: material-table

当我使用远程数据时,我需要允许过滤客户端而不是服务器端,这是我的表my table

和我用于remote data的代码

 <MaterialTable
   title={Strings.userManagementList}
   data={query => {
     this.get(query);
     return new Promise(resolve => event.on('data-fetched', resolve));
    }}
    isLoading={store.loading}
    options={this.options}
    actions={this.actions}
    localization={this.localization}
    columns={this.columns}
    components={this.components}
  />

这很好用,但是左上角when i type in it, it calls the end point agin with search parameter的搜索栏--->这很正常,但是我的问题是 when i change filter or search from search bar ---> related to any column it also calls the endpoint

所以我想要的是: 1 /远程数据 2 /仅再次用于触发远程数据的左上搜索字段 3 //如果我从列过滤栏进行过滤,除非我在左上角的搜索字段中进行分页或搜索,否则它将在当前表结果内部进行搜索

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以通过将查询返回的数据保存在本地组件中来实现。

现在,如果查询的唯一过滤器而不是页面或搜索参数发生变化,则无需调用this.get(query);,而是访问本地保存的数据,通过查询对象中的过滤器文本进行过滤,然后返回在承诺中过滤掉的数据,而不是获取新数据。