ant-design, 实现Table单击行变色

文章目录

        • 首先定义要引入的scss, 并且在页面引入
        • 定义Table
        • onRow和rowClassName
        • 效果

首先定义要引入的scss, 并且在页面引入

定义样式

.clickRowStyl{
  background-color : #00b4ed;
}
.ant-table-tbody>.clickRowStyl:hover>td {
  background-color : #00b4ed;
}

引入样式

import tdSelectStyle from "./transaction-struct.scss"

定义Table

                <Table
                  bordered
                  rowKey="id"
                  columns={tableColumns}
                  pagination={tablePagination}
                  dataSource={tableData}
                  scroll={{ x: 600 }}
                  onRow={(record) => ({
                    onClick: () => this.onTableClick(record),
                  })}
                  rowClassName={this.setRowClassName}
                />

onRow和rowClassName

                  onRow={(record) => ({
                    onClick: () => this.onTableClick(record),
                  })}

这个表示点击的时候执行 onTableClick

  onTableClick = (record) => {
    this.setState({ tableId: record.id });
  };

把点击的本行的 id 存储到 state

  setRowClassName = (record) => {
    const {tableId} = this.state;
    return record.id === tableId ? `${tdSelectStyle.clickRowStyl}` : '';
  };

setRowClassName 标识设置每行的 class , 要求返回是一个 String,
这里表示当本行的id 等于刚刚存储在state的 tableId, 那么就表示这一行是选中的行, 返回刚刚定义的样式, 修改背景色

效果

ant-design, 实现Table单击行变色_第1张图片
参考 : https://blog.csdn.net/zm_miner/article/details/83026968

你可能感兴趣的:(react)