antd實現(xiàn)table組件選中單行換樣式(比如背景顏色)
antd中table組件選中單行換樣式
項目中有一個需求,點擊某一行后,將改行的背景顏色換掉,換成一個比較醒目的顏色。
首先看了看官方,官方還是比較可愛可親的,都給我們準備好了
onRow 用法
適用于 onRow onHeaderRow onCell onHeaderCell
<Table onRow={record => { return { onClick: event => {}, // 點擊行 onDoubleClick: event => {}, onContextMenu: event => {}, onMouseEnter: event => {}, // 鼠標移入行 onMouseLeave: event => {}, }; }} onHeaderRow={(columns, index) => { return { onClick: () => {}, // 點擊表頭行 }; }} />
很明顯 這個屬性對應的是一個回調函數(shù),這個回調函數(shù)是有兩個參數(shù)的
- 第一個參數(shù)是當前行的信息
- 第二個參數(shù)是當前行在table數(shù)組中的下標index
我們這倆主要數(shù)onClick這個事件,當我們給onRow賦值為一個回調函數(shù)之后,回調函數(shù)會執(zhí)行,返回一個對象
{ onClick: event => {}, // 點擊行 onDoubleClick: event => {}, onContextMenu: event => {}, onMouseEnter: event => {}, // 鼠標移入行 onMouseLeave: event => {}, }
當我們單擊的時候執(zhí)行onClick;
后面四個分別是鼠標雙擊、鼠標右鍵、鼠標移入和鼠標移出;
我們這倆將onClick后面換成自己的自定義事件
上代碼:
<AAATable size={'default'} columns={columnsThird} //表格的列 dataSource={dataTableThird} //表格渲染的數(shù)據(jù) 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這個函數(shù)中能獲取到當前點擊的行內容和行下標;
zjq = (rowItem, index) => { console.log("LiuQing") this.setState({ index }) }
我們在狀態(tài)機中存儲一下index,用于判斷哪個下標顯示突出的背景顏色
state={ index:"" }
rowClassName
下面就該說table的另一個屬性了行類名rowClassName,這個屬性對應的也是一個函數(shù),這個函數(shù)的默認兩個參數(shù)同樣是當前行內容和當前行下標,返回值為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; }
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Vue3+vantUI3時間組件封裝過程支持選擇年以及年月日時分秒
這篇文章主要介紹了Vue3+vantUI3時間組件封裝過程支持選擇年以及年月日時分秒,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-07-07vue element Cascader級聯(lián)選擇器解決最后一級顯示空白問題
這篇文章主要介紹了vue element Cascader級聯(lián)選擇器解決最后一級顯示空白問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10