【react】封装table和分页

调用方式:reFreshTableData为调用和刷新列表方式

					<StationTable
						param={{
							tableData: tableData,
							columns: columns2, 
							page: {
								current: tableData.pageNo + 1,
								pageSize: tableData.pageSize,
								total: tableData.totalElements,
							},
						}}
						reFreshTableData={reFreshTableData}
					></StationTable>

组件封装

export const paginationCus = {
	pageSizeOptions: ['5', '10', '20', '30', '50', '100'],
	showQuickJumper: true,
	showSizeChanger: true,
	defaultPageSize: 20,
}


const StationTable = ({
  param,
  reFreshTableData,
}: {
  param: any;
  reFreshTableData: any;
}) => {
  const { tableData, columns } = param;
  const TbalePageNoChange = (page: any, pageSize: any) => {
    // console.log("page:" + page, pageSize);
    tableData.pageNo = page - 1;
    tableData.pageSize = pageSize;
    // 传出函数刷新列表
    reFreshTableData(tableData);
  };
  // pageSize变化
  const TbaleSizeChange = (current: number, size: number) => {
    tableData.pageNo = current;
    tableData.pageSize = size;
  };
  return (
    <>
      {tableData.tablearr && tableData.tablearr?.length > 0 && (
        <div className="ttable">
          <Table
            size="small"
            className="tableCus"
            pagination={false}
            columns={columns}
            scroll={{ y: "calc(100% - 32px)" }}
            rowKey={(record: any) => record.id}
            dataSource={tableData.tablearr}
          />
        </div>
      )}
      {tableData.tablearr?.length !== 0 && (
        <Pagination
          className="paginationCus"
          {...paginationCus}
          current={tableData.pageNo + 1}
          pageSize={tableData.pageSize}
          total={tableData.totalElements}
          onChange={TbalePageNoChange}
          onShowSizeChange={TbaleSizeChange}
        />
      )}
      {tableData.tablearr && tableData.tablearr?.length == 0 && (
        <NoneData showTxt="暂时没有数据~" className="no_select" />
      )}
    </>
  );
};
export default StationTable;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值