我使用 Ant-design 的 Table 组件来搜索、过滤和排序一大组数据,但是我在“选择所有数据”方面遇到了问题。
例如,如果我单击表格顶部的复选框,则仅选择屏幕上的显示行。因此,如果我更改页面,则不会选择其他行。如果我想选择所有数据,我需要自定义选择并使用rowSelection.selections.
正如您在下面从ant.design 网站摘录的这个示例中看到的那样,建议的解决方案是直接编写我需要选择的行的所有键,但是如果我在一列之前进行了过滤,我将无法知道我的状态道具数据源。
所以我的问题是:我如何知道屏幕上当前可用的所有数据?
例如,如果最初有10页,然后我过滤和排序,现在有2页,如何获取新数据集的数组。
提前致谢。
class App extends React.Component {
state = {
selectedRowKeys: [], // Check here to configure the default column
};
onSelectChange = (selectedRowKeys) => {
console.log('selectedRowKeys changed: ', selectedRowKeys);
this.setState({ selectedRowKeys });
}
render() {
const { selectedRowKeys } = this.state;
const rowSelection = {
selectedRowKeys,
onChange: this.onSelectChange,
hideDefaultSelections: true,
selections: [{
key: 'all-data',
text: 'Select All Data',
onSelect: () => {
this.setState({
selectedRowKeys: [...Array(46).keys()], // …Run Code Online (Sandbox Code Playgroud)为了在 React 中正确显示树视图,我需要过滤嵌套树对象。
我找到这篇文章: 过滤嵌套树对象而不丢失结构
但实际上我想做完全相反的事情。例如,如果在我的 filterData 函数中name === "a3“我想将对象保留为name === "a3"
const result = filterData(items, "a3")
Run Code Online (Sandbox Code Playgroud)
const items = [
{
name: "a1",
id: 1,
children: [
{
name: "a2",
id: 2,
children: [
{
name: "a3",
id: 3
},
{
name: "a5",
id: 4
}
]
}
]
},
{
name: "b2",
id: 2,
children: [
{
name: "a2",
id: 2,
children: [
{
name: "a3",
id: 3
}
]
},
{
name: "a4",
id: …Run Code Online (Sandbox Code Playgroud)