Reactjs 可以控制Antd表的状态吗';s";勾选“全部”;控制
我有一个带有排序、选择和分页的Ant设计表。默认情况下(如果我理解正确的话),Antd表选择是基于每页的。如果单击选择列标题中的“全选”复选框,Antd将选择当前页面上的所有行,但如果随后更改页面,则行和标题都将恢复为未选中状态。选择不会丢失,因为如果返回上一页,行和标题都会被选中 所以我想改变这一点,让“全选”真正选择表中的所有行,而不考虑分页。我发现了一些github问题,其中建议只需自己管理selectedRowKeys数组onSelect和onSelectAll函数。我做到了这一点,现在我的选择工作的预期 然而 选择列标题中的“全选”复选框仍在页面行中起作用。例如,如果我在第一页上,选择“全选”,然后取消选择其中一行,“全选”复选框将处于预期的中间/部分状态。但是,如果我转到下一页,所有行都会按预期选中,标题中的“全选”复选框也会按预期选中。要使此选择在功能上有意义,它需要保持在中间/部分状态。它需要反映整个数据集的选择,而不仅仅是当前页面 这可以在这个简单的例子中看到: 你知道如何覆盖“全选”复选框吗Reactjs 可以控制Antd表的状态吗';s";勾选“全部”;控制,reactjs,html-table,antd,Reactjs,Html Table,Antd,我有一个带有排序、选择和分页的Ant设计表。默认情况下(如果我理解正确的话),Antd表选择是基于每页的。如果单击选择列标题中的“全选”复选框,Antd将选择当前页面上的所有行,但如果随后更改页面,则行和标题都将恢复为未选中状态。选择不会丢失,因为如果返回上一页,行和标题都会被选中 所以我想改变这一点,让“全选”真正选择表中的所有行,而不考虑分页。我发现了一些github问题,其中建议只需自己管理selectedRowKeys数组onSelect和onSelectAll函数。我做到了这一点,现在
干杯您可以通过
表
组件上的行选择
道具来实现此效果。您需要在onSelectAll
事件处理程序中以编程方式设置selectedRowKeys
,以选择/取消选择所有表行,而不仅仅是活动页面上的行
请参见下面的CodeSandbox示例,了解您的用例的工作示例:
快乐编码 所以结果很简单。您只需将
列标题
添加到行选择
道具中,并为其提供一个复选框
,该复选框可以适当地处理自身
在TableRowSelection中有一个名为preserveSelectedRowKeys的新属性,允许保留选定的行键:
const rowSelection: TableRowSelection<CustomClass> = {
preserveSelectedRowKeys: true,
selectedRowKeys,
onChange: this.onSelectChange,
};
onSelectChange = (selectedRowKeys: Key[], selectedRows: CustomClass[]) => {
this.setState({ selectedRowKeys, selectedElements: selectedRows });
};
const rowSelection:TableRowSelection={
preserveSelectedRowKeys:true,
选择的箭头键,
onChange:this.onSelectChange,
};
onSelectChange=(selectedRowKeys:Key[],selectedRows:CustomClass[])=>{
this.setState({selectedRowKeys,selectedElements:selectedRows});
};
检查我的代码沙盒,这正是我正在做的。很好。只是目前似乎没有办法更改标题中“全部选中”复选框的道具。。。