我已经创建了一个React Table。我想通过用户操作隐藏或显示表中的某些列。默认情况下,所有列均应可见,但我们将具有一些复选框以隐藏或显示某些列。
Image of my table
假设我要显示8列中的4列。请建议我一个简单的技术来实现这一目标。
我的列标题数组是
const columns = [
{
Header: 'Column 1',
columns: [
{
Header: 'S Column 1',
accessor: 'firstName'
}
]
},
{
Header: 'Column 2',
columns: [
{
Header: 'S Column 2',
accessor: 'firstName'
}
]
},
{
Header: 'Column 3',
columns: [
{
Header: 'S Column 3',
accessor: 'firstName'
}
]
},
{
Header: 'Column 4',
columns: [
{
Header: 'S column 4',
accessor: 'firstName'
}
]
},
{
Header: 'Column 5',
columns: [
{
Header: 'S column 5',
accessor: 'firstName'
}
]
},
{
Header: 'Column 6',
columns: [
{
Header: 'S column 6a',
accessor: 'firstName'
},
{
Header: 'S column 6b',
accessor: 'firstName'
},
{
Header: 'S column 6c',
accessor: 'firstName'
},
{
Header: 'S column 6d',
accessor: 'firstName'
}
]
},
{
Header: 'Column 7',
columns: [
{
Header: 'S column 7',
accessor: 'firstName'
}
]
},
{
Header: 'Column 8',
columns: [
{
Header: 'S Column 8a',
accessor: 'firstName'
},
{
Header: 'S Column 8b',
accessor: 'firstName'
},
{
Header: 'S Column 8c',
accessor: 'firstName'
},
{
Header: 'S Column 8d',
accessor: 'firstName'
}
]
},
];
请帮助我以最简单的方法实现此功能。
如果可以,您可以在codeandbox上显示演示。
最佳答案
列中有一个属性show
。show: true, // can be used to hide a column
。
隐藏特定列使其为false。将用户的复选框值保持在该状态。
https://react-table.js.org/#/story/readme
注意:不建议使用列属性show
。请改用initialstate.hiddenColumns
。
检查:https://github.com/tannerlinsley/react-table/issues/1804