我有一个弹出窗口,通过它显示下拉列表。当前位置设置为顶部。但是下拉列表占用了太多空间,所以我希望弹出窗口检测有多少空间,并相应地设置位置。
下面是弹出框的代码:
<Popover
isOpen={this.state.showDropDown}
target={`dropdownbutton-${id}`}
toggle={this.toggle}
className={`dropdown-with-tags-popover ${this.props.className}`}
placement={this.props.placement || 'top'}
flip={false}
>
//code for list of users and search bar
</Popover>
如需进一步信息,请说明
1条答案
按热度按时间sc4hvdpw1#
要根据可用空间自动调整弹出框的位置,可以结合使用溢出和偏移属性以及某些计算。
以下是如何执行此操作的示例:
useEffect钩子用于度量dropdown元素上下的可用空间,setPlacement函数用于根据可用空间更新Popover组件的放置 prop 。
然后,您可以在代码中使用PopoverWithAdjustedPosition组件(而不是Popover组件),并向其传递一个setPlacement函数以更新放置状态。