遇到一个 TypeScript 的问题,请大佬指点

2022-09-01 16:47:23 +08:00
 particlec
---- 我在 ts 中,使用 antd Table 的 onChange 方法

//我把它的参数都取出来了,实际上我只想用到 sorter 参数
onChange={(
pagination: TablePaginationConfig,
filters: Record<string, FilterValue | null>,
sorter: SorterResult<DatabaseType> | SorterResult<DatabaseType>[],
extra: TableCurrentDataSource<DatabaseType>
) => {
handleTableChange(sorter);
}}


// 分页、过滤、排序改变时触发,我使用 sorter 发现 sorter?.field 、sorter?.order 都会类型报错
function handleTableChange(
sorter: SorterResult<DatabaseType> | SorterResult<DatabaseType>[]
) {
if (
sorter?.field &&
sorter?.order &&
(sorter.field !== params.sortField || sorter.order !== params.sortOrder)
) {
const sortField = sorter.field as string;
const sortOrder = sorter.order as string;

setParams((params: any) => ({
...params,
sortField: sortField,
sortOrder: sortOrder,
page: 1,
}));
}
}
742 次点击
所在节点    问与答
2 条回复
liuw666
2022-09-01 16:50:39 +08:00
我是重新定义了一个 sorter 的类型,antd 默认的太复杂。没有必要。 其实就两个字段而已
interface TableSorter {
field?: string;
order?: string;
}
particlec
2022-09-01 16:54:47 +08:00
//但是我重新定义完后 onChange ,会报红

onChange={(
pagination: TablePaginationConfig,
filters: Record<string, FilterValue | null>,
sorter: TableSorter,
extra: TableCurrentDataSource<DatabaseType>
) => {
handleTableChange(sorter);
}}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/877039

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX