アプリケーションで反応テーブルを使用しています。
列のサイズ変更中に をCSS
変更するという 1 つのことをすることに行き詰まっています。columns
現在resize
、列のみcursor
が変更される場合。私が欲しいのは、に追加border
することselected column
です。
SO
これも何度も探しましgoogle
た。しかし、有用なものは見つかりませんでした。また、ドキュメントでも、このトピックについては何も言及されていません。
アップデート
サイズ変更中に列をドラッグしながら境界線を追加できるようになりました。クラスを追加および削除することで、これを行うことができます。
そのために私がしたこと:
className の状態で var を作成しました:
this.state = {
addBorder: null
}
私の列にこのクラス名を渡しました:
const columns = [{
Header: 'Name',
accessor: 'name', // String-based value accessors!,
headerClassName: this.state.addBorder,
className: this.state.addBorder
}, {
Header: 'Age',
accessor: 'age',
Cell: props => <span className='number'>{2}</span> // Custom cell components!
}, {
id: 'friendName', // Required because our accessor is not a string
Header: 'Friend Name',
accessor: d => d.friend.name // Custom value accessors!
}, {
Header: props => <span>Friend Age</span>, // Custom header components!
accessor: 'friend.age'
}];
return (
<div onMouseUp={this.handleMouseUp}>
<ReactTable
data={data}
columns={columns}
resizable={true}
onResizedChange={(col, e) => {
const column = col[col.length-1];
this.setState({addBorder: column.id})
}} />
</div>
)
}
ドラッグ終了時にクラスを削除するには:
handleMouseUp (e) {
this.setState({addBorder: null});
}
しかし、ホバー時に境界線を追加することはまだできません。
今、ヘッダーの小道具でカスタム HTML を送信しています。私のHTMLでは、追加のdivを作成しました。そして、このdivを右に移動しました。そして、この div にカーソルを合わせると、マウス イベントが発行され、それに応じて CSS が変更されます。
しかし、列のサイズ変更を担当するヘッダーの既存の div は、私の Div と重なっています。
Header: props => <div className='header-div'> Name <div onMouseOver = {() => {
console.log('mose');
this.setState({className: 'addBorder'});
}} className='hover-div' onMouseOut = {() => {console.log('sdasd');this.setState({className: null});}}> </div></div> ,