如何在打字稿中使用react-table useSortBy

问题描述 投票:0回答:2

我到处搜索,但找不到一种干净的方法来使用

useSortBy
钩子和打字稿。

  const {
    getTableProps,
    getTableBodyProps,
    rows,
    prepareRow,
    headerGroups,
  } = useTable({ columns, data }, useSortBy);

  return (
    <Table {...getTableProps()}>
      <TableHead>
        {headerGroups.map(hg => (
          <TableRow {...hg.getHeaderGroupProps()}>
            {hg.headers.map(column => (
              <TableCell {...column.getHeaderProps(column.getSortByToggleProps())}>
                {column.render('Header')}
                  {column.isSorted
                    ? column.isSortedDesc
                      ? "D"
                      : "U"
                  : null
                }
              </TableCell>
            ))}
          </TableRow>
        ))}
      </TableHead>
    // ...

我收到 TS 错误,因为

getSortByToggleProps
上不存在
column
isSorted
isSortedDesc
上也不存在。

我也尝试过用

UseSortByHooks
添加
useTable
但没有运气:
useTable<UseSortByHooks<MyData>>(...)

typescript react-table
2个回答
2
投票

here所述,使用插件时需要创建声明文件。


0
投票

我在全局类型index.d.ts中扩展了接口HeaderGroup。添加了 UseSortByColumnProps

export interface HeaderGroup<D extends object = {}> extends ColumnInstance<D>, UseTableHeaderGroupProps<D>, UseSortByColumnProps<D> {}

这对我有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.