如何确定在哪个列上的onfilterdropdownnopenchange被触发?



在ANT 4.23.0中,在Table Column上增加了一个新的API回调函数:onFilterDropdownOpenChange。这个回调接受一个参数,一个布尔值,根据filterDropdown是打开还是关闭,该参数是true还是false。所有这些都是根据文档:

onFilterDropdownOpenChange Callback executed when filterDropdownOpen is changed

我想在我的表的多个列上实现这个回调函数,以跟踪当前打开的filterDropdown,但是回调似乎没有给出任何关于列本身的信息。

我需要这些信息(例如列键或datainindex)保存在状态变量中,这样我就可以始终知道打开FilterDropdown的正确列。

那么有可能找出onFilterDropdownOpenChange被触发的列的键/dataIndex吗?

我检查了传递给函数的参数是否包含有关列的任何信息,但这只是一个布尔值。我检查了是否可以传递更多的参数,但事实并非如此。代码是这样的:

{
dataIndex: 'id',
key: 'id',
onFilterDropdownOpenChange: (open: boolean) => {
console.log(open);
// can I know the dataIndex or key here?
},
}

Muhammad Nouman Rafique的回答

。您无法获得该列的键。如果我没有错,你想有一个函数来控制每个列过滤器的状态。如果是这样,您可以通过映射columns数组来解决这个问题,并使用该列的open value和键调用该通用函数。

columns.map((column) => ({ ...column, onFilterDropdownOpenChange: (open) => onFilterDropdownOpenChangeHandler(open, column.key) }))

相关内容

  • 没有找到相关文章

最新更新