JS使用递归方法获取多层级key值
需求是这样:默认要展开列表的子集,官方提供的属性是‘defaultExpandedRowKeys’, 必须是个数组
componentDidMount(){
const {
dataSource} = this.state;
const getTableKey = (data) => {
const parentKey = [];
data.forEach((item) => {
if (item.subList && item.subList.length) {
parentKey.push(item.key);
const temp = getTableKey(item.subList);
if (temp.length) {
parentKey.push(...temp);
}
}
});
return parentKey;
};
const arrKey = getTableKey(dataSource);
this.setState({
arrKey})
};
<Table
columns={
columns}
dataSource={
dataSource}
childrenColumnName="subList"
bordered
pagination={
false}
defaultExpandedRowKeys={
this.state.arrKey}
/>
如图所示:
注释:文章重点在于这个递归方法,因为表格的结构子集是未知的所以递归方法是最好的方案;