step:1
点击分页器的内容
trigger事件句柄
(pagination, filters, sorter) => {//或者(page, pageSize)等 this.props.onChange(pagination, filters, sorter);//继续向下传递,或者直接在这里处理,都可以 }
step2
获取pagination中的pageSize/current等信息,和其他参数一同放入param中,发送异步请求;
step3
获取到服务器返回的数据,在opitons(一般都是放在这里)中会有:pageSize、current、total等分页器需要的信息;传递给paginnation; 更新paginnation;
over;
------------------------------------------------------------
为何要等服务器返回再传递给paginnation,而不直接点击的时候就改变呢(current页码可以现在设置,total一般要等请求后再设置)?其实原因就是:返回的total可能是会变化的(下一秒数据量改变了也是可能的),
还有一点需要知道的点就是,只要用户不是通过paginnation实现的接口查询,就不应该传递分页相关的数据(可能我们会传递pageSize字段,但绝对不应该传递current,不然用户重新搜索了一个key,结果你展示的不是往往更重要的首页数据),这时候后台都会返回第一页的数据,我们也是从第一页开始显示。
所以 一般都是服务器返回后再设置 paginnation,当然方式可以是把pagination变成状态机管理起来,这样服务器返回后改变total等属性分页器也就会重新同步改变;