如何在 React Table 上显示和隐藏某些列?
How to show and hide some columns on React Table?
我创建了一个 React Table。我想通过用户操作隐藏或显示 table 中的某些列。默认情况下,所有列都应该是可见的,但我们会有一些复选框来隐藏或显示某些列。
Image of my table
假设我想显示 8 列中的 4 列。请建议我一个简单的技术来实现这一点。
我的专栏Header数组是
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'
}
]
},
];
请帮我用最简单的技术实现这个功能。
如果可以的话,你可以在codesandbox上展示一个demo。
列中有一个 属性 show
.
show: true, // can be used to hide a column
.
将隐藏特定列设置为 false。将用户的复选框值保持在状态中。
https://react-table.js.org/#/story/readme
注意:属性 show
列已弃用。请改用 initialstate.hiddenColumns
。
代码示例:
const columns = useMemo(
() => [
{
Header: 'DeviceId',
accessor: 'DeviceId',
},
{
Header: 'Serial_Number',
accessor: 'Serial_Number',
},
{
Header: 'Type',
accessor: 'Type',
},
],[]
);
const initialState = { hiddenColumns: ['DeviceId'] };
useTable({
columns,
data,
initialState
},
useSortBy
)
我创建了一个 React Table。我想通过用户操作隐藏或显示 table 中的某些列。默认情况下,所有列都应该是可见的,但我们会有一些复选框来隐藏或显示某些列。
Image of my table
假设我想显示 8 列中的 4 列。请建议我一个简单的技术来实现这一点。
我的专栏Header数组是
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'
}
]
},
];
请帮我用最简单的技术实现这个功能。
如果可以的话,你可以在codesandbox上展示一个demo。
列中有一个 属性 show
.
show: true, // can be used to hide a column
.
将隐藏特定列设置为 false。将用户的复选框值保持在状态中。
https://react-table.js.org/#/story/readme
注意:属性 show
列已弃用。请改用 initialstate.hiddenColumns
。
代码示例:
const columns = useMemo(
() => [
{
Header: 'DeviceId',
accessor: 'DeviceId',
},
{
Header: 'Serial_Number',
accessor: 'Serial_Number',
},
{
Header: 'Type',
accessor: 'Type',
},
],[]
);
const initialState = { hiddenColumns: ['DeviceId'] };
useTable({
columns,
data,
initialState
},
useSortBy
)