Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关闭滚动上的下拉菜单_Javascript_Reactjs_Drop Down Menu_Antd - Fatal编程技术网

Javascript 关闭滚动上的下拉菜单

Javascript 关闭滚动上的下拉菜单,javascript,reactjs,drop-down-menu,antd,Javascript,Reactjs,Drop Down Menu,Antd,我目前正在使用Ant Design进行一个项目,在一个页面上有一个下拉菜单。当你点击菜单时,它会打开下拉菜单,但如果你向下滚动,菜单仍会保持打开状态。我希望在用户向下滚动时,菜单关闭 我试图实现一个handleScroll()函数,以便将is与提供的proponVisibleChange一起使用。然而,我不确定我应该在函数中添加什么来让它工作 handleScroll = (e) => { window.addEventListener('scroll', () => { conso

我目前正在使用
Ant Design
进行一个项目,在一个页面上有一个下拉菜单。当你点击菜单时,它会打开下拉菜单,但如果你向下滚动,菜单仍会保持打开状态。我希望在用户向下滚动时,菜单关闭

我试图实现一个
handleScroll()
函数,以便将is与提供的prop
onVisibleChange
一起使用。然而,我不确定我应该在函数中添加什么来让它工作

handleScroll = (e) => {
window.addEventListener('scroll', () => {
console.log('scrolling');
 })
}

<Dropdown onVisibleChange={visible => this.handleScroll( 
console.log(visible)) } trigger={['click']} overlay={
  <Menu>
    <Menu.Item key="1"
      onClick={() => this.scrollTo(this.whyRef)}>
      <Icon icon={u1F427} /> <strong>WHY</strong>
      </Menu.Item>
     </Menu>
   }>
 <Dropdown>
handleScroll=(e)=>{
window.addEventListener('scroll',()=>{
console.log(“滚动”);
})
}
这是我的手卷(
console.log(可见))}trigger={['click']}overlay={
this.scrollTo(this.whyRef)}>
为什么
}>

您需要在构造函数中添加事件侦听器,并自己处理下拉列表的可见性状态。试着这样做:

类示例扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
可见:假
};
window.addEventListener(“滚动”,此.closeMenu);
}
切换菜单=()=>{
this.setState({visible:!this.state.visible});
};
关闭菜单=()=>{
this.setState({visible:false});
};
render(){
返回(
);
}

}
非常感谢您,它工作得很好!!在构造函数中添加事件侦听器改变了一切。我会记住的。非常感谢,我已经为此挣扎了一段时间了。