react-table 没有正确排序小数
react-table not sorting decimal numbers correctly
我正在尝试使用 react-table 对带有小数的列进行排序,但排序呈现不正确。
这是尝试从上到下对年龄列进行排序时呈现的顺序:
0.89
0.14
0.8
什么时候渲染:
0.89
0.8
0.14
使用codesandbox的问题演示:
https://codesandbox.io/s/new-bird-puhhr?file=/src/App.js
单击 age
列以重现该问题。
我通过重写 orderByFn 设法让它工作。但是这个 hack 只适用于对一列进行排序。
orderByFn: function defaultOrderByFn(arr, funcs, dirs) {
if (dirs[0]) {
return arr.sort((a, b) => b.original.age - a.original.age);
} else {
return arr.sort((a, b) => a.original.age - b.original.age);
}
非常感谢任何解决此问题的帮助。
您可以在 react-table
中的每列应用自己的排序逻辑。
正如我在您的示例中看到的那样,在初始化列时使用 sortType
字段覆盖默认排序,您已接近解决问题。
在 age 列的 sortType 字段中应用此箭头函数,并且在升序和降序中排序应该都能正常工作,因为库会处理它。
sortType: (rowA, rowB) => {
if (rowA.original.age > rowB.original.age) return -1;
if (rowB.original.age > rowA.original.age) return 1;
}
根据您的示例参见codesandbox。
我正在尝试使用 react-table 对带有小数的列进行排序,但排序呈现不正确。
这是尝试从上到下对年龄列进行排序时呈现的顺序:
0.89
0.14
0.8
什么时候渲染:
0.89
0.8
0.14
使用codesandbox的问题演示: https://codesandbox.io/s/new-bird-puhhr?file=/src/App.js
单击 age
列以重现该问题。
我通过重写 orderByFn 设法让它工作。但是这个 hack 只适用于对一列进行排序。
orderByFn: function defaultOrderByFn(arr, funcs, dirs) {
if (dirs[0]) {
return arr.sort((a, b) => b.original.age - a.original.age);
} else {
return arr.sort((a, b) => a.original.age - b.original.age);
}
非常感谢任何解决此问题的帮助。
您可以在 react-table
中的每列应用自己的排序逻辑。
正如我在您的示例中看到的那样,在初始化列时使用 sortType
字段覆盖默认排序,您已接近解决问题。
在 age 列的 sortType 字段中应用此箭头函数,并且在升序和降序中排序应该都能正常工作,因为库会处理它。
sortType: (rowA, rowB) => {
if (rowA.original.age > rowB.original.age) return -1;
if (rowB.original.age > rowA.original.age) return 1;
}
根据您的示例参见codesandbox。