前端项目实战39-table要单独形成一套组件-优秀呀
子组件
import React, { useCallback, useState } from 'react'; import { Table } from 'antd'; import { PaginationProps } from 'antd/lib/pagination'; import { TableProps } from 'antd/lib/table'; import { PageResponseData } from './type'; interface BaseTableProps<T> extends TableProps<T> { data: { list: T[]; page: PageResponseData; }; children: React.ReactNode; onChange: (page: PaginationProps) => void; } function BasicTable<T extends { id?: number }>(props: BaseTableProps<T>) { const { data: { list, page }, ...resetProps } = props; const [pagination, setPagination] = useState<PaginationProps>({ defaultCurrent: 1, defaultPageSize: 10, showSizeChanger: true, }); const onTableChange = useCallback((pageParams: PaginationProps) => { setPagination(pageParams); props.onChange(pageParams); }, []); return ( <Table<T> bordered {...resetProps} onChange={onTableChange} style={{ marginTop: '24px' }} dataSource={list} rowKey={record => `${record.id}`} pagination={{ ...pagination, total: page.dataTotal, showTotal: () => { return '共 ' + page.dataTotal + ' 条记录'; }, }} > {props.children} </Table> ); } export default BasicTable;
父组件
{/* 数据表格 */}
<BasicTable<Menu> data={menuData} onChange={onTableChange} loading={loading}>
<Table.Column<Menu> title="所属工厂" dataIndex="factoryName" align="center"></Table.Column>
<Table.Column<Menu> title="所属车间" dataIndex="workshopName" align="center"></Table.Column>
<Table.Column<Menu> title="工段名称" dataIndex="name" align="center"></Table.Column>
<Table.Column<Menu> title="添加时间" dataIndex="registerDate" align="center"></Table.Column>
<Table.Column<Menu> title="修改时间" dataIndex="registerDate" align="center"></Table.Column>
<Table.Column<Menu>
title="操作"
align="center"
render={(text, record, index) => (
<MenuButton index={index} onButtonClick={onButtonClick} />
)}
></Table.Column>
</BasicTable>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律