Table 使用 react-table-v6 排序
Table Sorting with react-table-v6
我正在尝试将排序方法应用于我的 table 中的其中一列。该列具有数值和空值(“--”)。我想以升序和降序方式对值进行排序。我希望所有空值都应该放在两种排序类型中 table 的底部。
谁能推荐一个自定义排序函数与 react-table-6 一起使用?
谢谢...
你问这个问题真是太疯狂了,因为我刚刚用完全相同的要求完成了这个确切的问题 - 你真幸运!
这是在 TypeScript 中,但您可以根据需要删除类型。
列:
const columns: Column[] = useMemo(
() => [
{
Header: 'Rank',
accessor: 'rank',
sortType: rankSort, // This is the rankSort() function below
maxWidth: 10,
},
...
],
[]
);
这是排名函数:
const getRankValueString = (value: number, desc?: boolean): string => {
let stringValue = value.toString();
if (stringValue === '--') {
if (desc) {
stringValue = '-9999999';
} else {
stringValue = '9999999';
}
return stringValue;
}
for (let i = stringValue.length; i < 6; i++) {
stringValue = `0${stringValue}`;
}
return stringValue;
};
const rankSort = (
rowA: Row,
rowB: Row,
columnId: string,
desc?: boolean
): number => {
return getRankValueString(rowA.values[columnId], desc).localeCompare(
getRankValueString(rowB.values[columnId], desc)
);
};
它有点老套,但它最多可以对 6 位数的值进行排序。我愿意接受优化。
我正在尝试将排序方法应用于我的 table 中的其中一列。该列具有数值和空值(“--”)。我想以升序和降序方式对值进行排序。我希望所有空值都应该放在两种排序类型中 table 的底部。
谁能推荐一个自定义排序函数与 react-table-6 一起使用?
谢谢...
你问这个问题真是太疯狂了,因为我刚刚用完全相同的要求完成了这个确切的问题 - 你真幸运!
这是在 TypeScript 中,但您可以根据需要删除类型。
列:
const columns: Column[] = useMemo(
() => [
{
Header: 'Rank',
accessor: 'rank',
sortType: rankSort, // This is the rankSort() function below
maxWidth: 10,
},
...
],
[]
);
这是排名函数:
const getRankValueString = (value: number, desc?: boolean): string => {
let stringValue = value.toString();
if (stringValue === '--') {
if (desc) {
stringValue = '-9999999';
} else {
stringValue = '9999999';
}
return stringValue;
}
for (let i = stringValue.length; i < 6; i++) {
stringValue = `0${stringValue}`;
}
return stringValue;
};
const rankSort = (
rowA: Row,
rowB: Row,
columnId: string,
desc?: boolean
): number => {
return getRankValueString(rowA.values[columnId], desc).localeCompare(
getRankValueString(rowB.values[columnId], desc)
);
};
它有点老套,但它最多可以对 6 位数的值进行排序。我愿意接受优化。