antd的官方文档中对于某一列排序是这样描述的:在列相应的columns中定义一个sorter函数属性,但并未给出sorter函数的返回值,如下。
sorter: function(rowA, rowB) { ... }
官方案例中是这样写的,两个数字相减:
sorter: (a, b) => a.name.length - b.name.length,
这个sorter函数比较返回值,我的第一印象是Bool类型,于是写了下面的排序方法:
sorter: (a, b) => a.id > b.id
写排序函数时是在家里用mac电脑写的排序正常,传到公司Windows电脑后,这个排序死活没效果~~无论怎么点,参数a、b打印出来也是正常的,有点绝望。
一番百度后找到了原因,sorter函数根据返回值来进行排序,返回值为>0时进行倒叙排序,返回值为<0时为正序排序!修改如下就正常了:
sorter: (a, b) => a.id > b.id ? 1 : -1
官网也没说返回值应该是1和-1啊,略坑~