首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react- Table -v6进行表排序

使用react- Table -v6进行表排序
EN

Stack Overflow用户
提问于 2021-08-12 05:43:56
回答 1查看 222关注 0票数 1

我正在尝试将排序方法应用于表中的一列。该列有数值和空值("--")。我想以升序和降序的方式对值进行排序。我希望在两种排序类型中,所有空值都应该放在表的底部。

有没有人能推荐一个自定义排序函数和react-table-6一起使用?

谢谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 06:02:50

您问这个问题太疯狂了,因为我刚刚用完全相同的需求解决了这个完全相同的问题--您真幸运!

这是在TypeScript中实现的,但如果需要,您可以删除这些类型。

列:

代码语言:javascript
复制
  const columns: Column[] = useMemo(
    () => [
      {
        Header: 'Rank',
        accessor: 'rank',
        sortType: rankSort, // This is the rankSort() function below
        maxWidth: 10,
      },
      ...
    ],
    []
  );

这是排名函数:

代码语言:javascript
复制
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位数。我对优化持开放态度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68752171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档