antd 表格columns项有render回调 表头与表内容不对齐

使用antd的Table组件做表格展示,columns的每一项都设置了width,并且有的项设置了render后发现表头与表内容不对齐了,why?

const columns = [{

      title: '项目名称',

      dataIndex: 'projName',

      width: 150,

      key: 'projName',

      render: (text, row, index) => {

        return {

          children: <Tooltip placement="top" title={text}><div className={'textOverflow'} style={{ width: 130 }} >

            <a href="javascript:;" onClick={() => this.showDetailProjModal(row)}>{text}</a>

          </div></Tooltip>,

        };

      },

      sorter: true,

    }, {

      title: '项目类型',

      dataIndex: 'projTypeName',

      width: 100,

      sorter: true,

    }];

 

首先可以观察以下图片,这是我修改过后的效果图,有设置了滚动scroll 并且设置了x: 2000,这时候,当columns项的总宽度大于2000时,就会导致,怎么调整columns项的width,表头与表单都对不齐,我们需要更改x: 2500或者更大,直到足够宽。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是一个使用 React 和 Ant Design Pro 实现轮播表格中的数据表头 columns 不变的示例代码。 首先,我们需要引入 `Carousel` 和 `Table` 组件以及相应的样式文件。 ```tsx import { Carousel, Table } from 'antd'; import 'antd/dist/antd.css'; import styles from './index.less'; ``` 接着,我们定义一个函数组件 `CarouselTable`,它接收 `data` 和 `columns` 两个参数。 ```tsx interface Props { data: any[]; columns: any[]; } const CarouselTable: React.FC<Props> = ({ data, columns }) => { // TODO: 实现轮播表格逻辑 return ( <div className={styles.carouselTable}> {/* TODO: 渲染轮播表格 */} </div> ); }; ``` 接下来,我们在 `CarouselTable` 组件中实现轮播表格的逻辑。我们使用 `Carousel` 组件来实现轮播效果,并在每个轮播项中渲染一个 `Table` 组件来显示表格数据。 ```tsx const CarouselTable: React.FC<Props> = ({ data, columns }) => { const pageSize = 5; // 每页显示的数据条数 const pageCount = Math.ceil(data.length / pageSize); // 总页数 const tableData = Array.from({ length: pageCount }, (_, i) => data.slice(i * pageSize, (i + 1) * pageSize) ); // 将数据分页 return ( <div className={styles.carouselTable}> <Carousel dots={false} autoplay> {tableData.map((pageData, i) => ( <div key={i}> <Table dataSource={pageData} columns={columns} pagination={false} /> </div> ))} </Carousel> </div> ); }; ``` 在这段代码中,我们首先计算出总页数和每页显示的数据条数,然后将数据分页。接着,我们使用 `Carousel` 组件来渲染轮播项,每个轮播项中渲染一个 `Table` 组件来显示分页后的数据。注意,我们将 `pagination` 属性设置为 `false`,以避免在每个表格中显示分页条。 最后,我们导出 `CarouselTable` 组件。 ```tsx export default CarouselTable; ``` 完整代码示例: ```tsx import { Carousel, Table } from 'antd'; import 'antd/dist/antd.css'; import styles from './index.less'; interface Props { data: any[]; columns: any[]; } const CarouselTable: React.FC<Props> = ({ data, columns }) => { const pageSize = 5; // 每页显示的数据条数 const pageCount = Math.ceil(data.length / pageSize); // 总页数 const tableData = Array.from({ length: pageCount }, (_, i) => data.slice(i * pageSize, (i + 1) * pageSize) ); // 将数据分页 return ( <div className={styles.carouselTable}> <Carousel dots={false} autoplay> {tableData.map((pageData, i) => ( <div key={i}> <Table dataSource={pageData} columns={columns} pagination={false} /> </div> ))} </Carousel> </div> ); }; export default CarouselTable; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hzxOnlineOk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值