Обычно вы поддерживаете состояние, скажем, open
, и нажимаете onClick на заголовке, и переключаете состояние open
Рабочая демонстрация вcodeandbox
* 1008 пример использует простой div без стилей, но вы поняли идею.
Пример фрагмента:
class App extends React.Component {
constructor() {
super();
this.state = {
data: makeData(),
open: true
};
}
toggleAccordian = () => {
this.setState(prev => ({ ...prev, open: !prev.open }));
};
render() {
const { data } = this.state;
return (
<div>
<div
style={{ background: "red", cursor: "pointer" }}
onClick={this.toggleAccordian}
>
toggle table
</div>
<div
style={{
margin: "20px",
display: this.state.open ? "block" : "none"
}}
>
<ReactTable
data={data}
columns={[
{
Header: "First Name",
accessor: "firstName",
className: "sticky",
headerClassName: "sticky"
},
......
Также, как упоминалось в комментариях, если вы используете какую-либо библиотеку можно использовать готовые гармошки