antd中table组件选中单行换样式(比如背景颜色)

简介: 在Ant Design (antd)的Table组件中,可以通过设置`onRow`属性来定义行点击事件,从而改变被点击行的样式,如背景颜色。`onRow`是一个函数,返回一个对象,对象包含事件处理函数,如`onClick`。同时,使用`rowClassName`属性来指定行的类名,结合状态管理,可以实现点击某行后改变其背景颜色的效果。具体实现时,需要在组件状态中保存当前被点击行的索引,然后通过`rowClassName`判断并返回相应的类名。

今天项目中有一个需求,点击某一行后,将改行的背景颜色换掉,换成一个比较醒目的颜色。
首先看了看官方,官方还是比较可爱可亲的,都给我们准备好了,
在这里插入图片描述

onRow 用法

适用于 onRow onHeaderRow onCell onHeaderCell

<Table
  onRow={
   record => {
   
    return {
   
      onClick: event => {
   }, // 点击行
      onDoubleClick: event => {
   },
      onContextMenu: event => {
   },
      onMouseEnter: event => {
   }, // 鼠标移入行
      onMouseLeave: event => {
   },
    };
  }}
  onHeaderRow={
   (columns, index) => {
   
    return {
   
      onClick: () => {
   }, // 点击表头行
    };
  }}
/>

很明显 这个属性对应的是一个回调函数,这个回调函数是有两个参数的,第一个参数是当前行的信息,第二个参数是当前行在table数组中的下标index
在这里插入图片描述
我们这俩主要数onClick这个事件,当我们给onRow赋值为一个回调函数之后,回调函数会执行,返回一个对象

{
   
      onClick: event => {
   }, // 点击行
      onDoubleClick: event => {
   },
      onContextMenu: event => {
   },
      onMouseEnter: event => {
   }, // 鼠标移入行
      onMouseLeave: event => {
   },
    }

当我们单击的时候执行onClick;
后面四个分别是鼠标双击、鼠标右键、鼠标移入和鼠标移出;
我们这俩将onClick后面换成自己的自定义事件

上代码;

 <AAATable
         size={
   'default'}
         columns={
   columnsThird} //表格的列
         dataSource={
   dataTableThird} //表格渲染的数据
         title={
   'INCLUDE列表'} //表格的名字
         onChange={
   this.onChangeTableThird} //可以固定使用
         total={
   totalThird}
         pageSize={
   pageSizeThird}
         current={
   currentPageThird}
         showTotal={
   true}
         rowClassName={
   this.rowClassNameFun}
         onRow={
   
              (record, index) => {
   
                  return {
   
                      onClick: _ => {
    this.zjq(record, index) }, // 点击行
                          };
              }}
 />

我们在zjq这个函数中能获取到当前点击的行内容和行下标;

    zjq = (rowItem, index) => {
   
        console.log("LiuQing")
        this.setState({
   
            index
        })
    }

我们在状态机中存储一下index,用于判断哪个下标显示突出的背景颜色

    state={
   
        index:""
    }

rowClassName
下面就该说table的另一个属性了行类名rowClassName,这个属性对应的也是一个函数,这个函数的默认两个参数同样是当前行内容和当前行下标,返回值为string也就是我们的类名即可。
我们可以使用index完美的得到哪一行被点击了
在这里插入图片描述

    rowClassName={
   this.rowClassNameFun}
    rowClassNameFun = (record, index) => {
   
        console.log(record, index, "rowClassNameFun")
        if (index === this.state.index)
            return 'mySelfClassName'
    }

最后就是引入样式文件

    import './index.less'
    .mySelfClassName{
   
        background-color: red;
    }

在这里插入图片描述

目录
相关文章
antd-procomponent中编辑表格动态数据设置的使用
antd-procomponent中编辑表格动态数据设置的使用
779 0
|
存储 前端开发 JavaScript
ahooks 正式发布:值得拥抱的 React Hooks 工具库
ahook定位于一套基于 React Hooks 的工具库,核心围绕 React Hooks 的逻辑封装能力,降低代码复杂度和避免团队的重复建设为背景,共同建设和维护阿里经济体层面的 React Hooks 库。
24138 1
ahooks 正式发布:值得拥抱的 React Hooks 工具库
|
前端开发
react antd点击table行时加选中背景色
react antd点击table行时加选中背景色
350 5
antd table合并行或者列(动态添加合并行、列)
在Ant Design的Table组件中实现行或列的合并,通过动态计算数据源中的`rowSpan`或`colSpan`属性来控制,支持对特定字段进行行或列合并,包括多选框列的合并处理。
2111 3
antd table合并行或者列(动态添加合并行、列)
|
JavaScript
Ant design vue 样式调整(包含导航栏、a-table表格、分页)
Ant design vue 样式调整(包含导航栏、a-table表格、分页)
1820 1
|
前端开发 计算机视觉
React使用antd实现可编辑单元格
React结合Ant Design实现可编辑单元格的表格组件,通过EditableRow和EditableCell封装实现单元格编辑功能,并提供saveFun回调保存编辑内容。
667 1
|
前端开发 JavaScript API
React Echarts 使用教程 - 如何在 React 中加入图表(内附数据看板实战搭建案例)
Ehcarts 作为数据展示的组件,应用场景丰富,所以在 React 里引入 Echarts 图表是每个前端必会技能。而 Echarts配置项多且复杂,每个配置项都会细分很多个配置小项,并且还对外暴露了一套 API,包括图表实例,事件监听等,还是有一定的上手难度。本文手把手教大家如何在 React 里使用 Echarts,并结合实际使用场景,分享我是如何处理图表自适应等具体问题。 最后来一个实战教学,教大家如何结合 ant-design React UI 框架,开发企业级的「数字币走势数据看板」,帮助大家加深对 Echarts 的理解。
1253 0
|
前端开发 JavaScript
使用 JavaScript 获取 URL 参数的详细指南
【2月更文挑战第26天】
15355 2
使用 JavaScript 获取 URL 参数的详细指南
|
前端开发
antd-protable的分页逻辑封装
antd-protable的分页逻辑封装
839 0
|
JavaScript
ant design vue 的table组件使用
介绍了antd vue 表格rowSelection选择框功能的使用方式,具有很好的参考价值
661 2