我们使用antd(4.18.5)表过滤器。当点击重置按钮时,它将重置下拉列表,但该下拉列表没有关闭。我需要关闭下拉列表时点击重置按钮。实际上,当我点击下拉列表之外的时候,下拉列表正在关闭,原始表将通过API调用显示。因此,我需要关闭下拉列表和原始表应显示时单击重置按钮。但是我无法找到函数调用时,点击重置按钮。我试图通过提供风格来关闭该下拉列表。
if(document.getElementsByClassName('ant-table-filter-dropdown-btns')[0] &&
document.getElementsByClassName('ant-btn-sm')[0]){
document.getElementsByClassName('ant-btn-sm')[0].addEventListener('click',()=>{
document.getElementsByClassName('ant-dropdown')[0].style.display='none';
})
}
字符串
但这也不管用
有人能帮我吗?谢啦,谢啦
2条答案
按热度按时间9jyewag01#
我也在寻找同样的东西。但我想通了。在表中,我们有
locale
prop具有以下键:字符串
你可以在
filterReset
中传递一个ReactNode,当我们点击该节点或Reset
时,你可以通过添加ant-dropdown-hidden
类或使用filterDropdownVisible
和onFilterDropdownVisibleChange
使过滤器下拉列表可见或隐藏来关闭下拉列表。型
我们可以使用
filterDropdown
prop,但是使用这个prop,你需要从头开始实现一切(处理复选框,显示所有值,按钮等)。我已经尝试了一切,但如果有人发现有任何其他选择来解决这个问题,可以提供解决方案gc0ot86w2#
我根据穆罕默德的回答找到了一个更好的解决办法。正如他提到的,在表中可以找到
locale
prop,其中包括filterReset
键。这个键接收一个React.ReactNode
元素,所以你需要一个状态来存储过滤器下拉列表是打开的还是关闭的,你可以通过这个元素来更新它。字符串
但是这样你仍然不能控制下拉列表是否可见,因为你必须访问表的
columns
属性并做一些修改。columns
prop包括键filterDropdownVisible
,它指示下拉过滤器是否可见,以及键filterIcon
,它允许您处理过滤器图标的行为。因此,您将filterDropdownVisible
设置为created状态,并根据状态的值显示或隐藏下拉列表。最后,您还可以使用filterIcon
在单击下拉列表时打开或关闭它。型
简而言之,您需要:
columns
属性希望这能帮上忙