官方React选择文档中有一个closeMenuOnScroll
属性,其声明如下:closeMenuOnScroll
支柱
然而,当我在组件上设置closeMenuOnScroll={() => true}
prop时,即使我在菜单内部滚动,它也会关闭菜单(我不能滚动菜单选项,因为它是自动关闭的)。我试图实现的是,当我在react-select组件内部滚动时,遍历(滚动)菜单项,如果我退出菜单,则关闭菜单。
谢谢。
<Select
options={options}
onChange={handleChange}
closeMenuOnScroll={() => true}
/>
1条答案
按热度按时间balp4ylt1#
From the documentation:如果你传递了一个函数,当函数返回true时菜单就会关闭,这就是你的例子,菜单在任何滚动动作时都会关闭,即使是在选择菜单中。
如果你不给prop传递函数,而只传递true/false,那么菜单应该只在主体滚动时关闭。
如果您想要更精细的控制,例如当您的选择位于可滚动div中而不是窗口/正文中时:使用该函数,但在其中进行一些检查。
}}
您需要在给予给closeMenuOnScroll属性的函数中检查scroll事件,并确定滚动是来自窗口还是主体(或容器),然后返回true。否则返回false并且不关闭菜单。
因此,我想解决问题的最简单方法是执行
closeMenuOnScroll={true}