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;
    }

在这里插入图片描述

目录
相关文章
|
11月前
|
前端开发
【前端】elementUI表格根据状态显示不同的字体颜色
【前端】elementUI表格根据状态显示不同的字体颜色
268 1
|
10月前
|
前端开发
CSS中给表格的第一列及最后一列设置不同的样式
CSS中给表格的第一列及最后一列设置不同的样式
修改elementui table 组件滚动条样式
修改elementui table 组件滚动条样式
109 0
|
3月前
|
前端开发
CSS常用属性之(列表、表格、鼠标)属性,(如果想知道CSS的列表、表格、鼠标相关的属性知识点,那么只看这一篇就足够了!)
CSS常用属性之(列表、表格、鼠标)属性,(如果想知道CSS的列表、表格、鼠标相关的属性知识点,那么只看这一篇就足够了!)
|
2月前
|
前端开发
css 巧用 ::after 实现 tab 切换动效
css 巧用 ::after 实现 tab 切换动效
32 0
|
4月前
|
JavaScript
vue给li标签设置鼠标覆盖阴影样式
vue给li标签设置鼠标覆盖阴影样式
|
9月前
|
前端开发
CSS:去除input和button边框以及选中时边框默认样式
CSS:去除input和button边框以及选中时边框默认样式
|
JavaScript
VUE element-ui之table表格中嵌套输入框,且输入框失焦自动勾选当前行
VUE element-ui之table表格中嵌套输入框,且输入框失焦自动勾选当前行
1628 0
VUE element-ui之table表格中嵌套输入框,且输入框失焦自动勾选当前行
|
JavaScript
VUE系列——ElementUI使用table时,选中某行或者鼠标移入某行时添加背景色
VUE系列——ElementUI使用table时,选中某行或者鼠标移入某行时添加背景色