最近在用ant-design的时候 ,碰到了一个问题 ,table在排序的时候要服务端来排,前端做的排序只能做当前页,所以就用到了ant-design里面的table的获取远程数据问题
此时要完全按照api上的说明来写,不然会出错,得不到想要的结果 ,本人就犯了个错误,文档地址:https://ant.design/components/table-cn/#components-table-demo-ajax
重要的是这段代码:
handleTableChange = (pagination, filters, sorter) =>
{ const pager =
{ ...this.state.pagination };
pager.current = pagination.current;
this.setState({ pagination: pager, });
this.fetch({ results: pagination.pageSize, page: pagination.current, sortField: sorter.field, sortOrder: sorter.order, ...filters, });
}
是监听table数据变化的,方法中的参数都要传,本人以为filter用不到就没有传,导致最后打印出来的sorter都是空对象,可能是封装好的方法就是这样,要按照顺序传。
这样就可以得到sorter的值了
具体的值有各个列的columnKey,field,order 可以根据colimnKey 去判断是哪个列,order 未排序方式
网友评论