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啊,略坑~