Lor*_*eiß 2 javascript reactjs
我正在尝试在 React 中模拟悬停事件。所以我正在使用onMouseEnter并onMouseLeave
触发状态变化。
不幸的是,当我第一次用鼠标进入 Element 时,两种方法都会被触发......
当我离开元素时,只有 onMouseLeave is triggered.
Does anyone knows why the methodonMouseLeave` 在进入元素时被触发。
这是我的代码:
handleOver(event){
event.preventDefault();
console.log('enter');
if(this.state.open === false){
this.setState({
open: true,
anchorEl: event.currentTarget,
});
}
}
handleLeave(event){
event.preventDefault();
console.log('leave');
if(this.state.open === true){
this.setState({open: false})
}
}Run Code Online (Sandbox Code Playgroud)
<img
onMouseEnter={this.handleOver}
onMouseLeave={this.handleLeave}
src={InfoIcon}
/>
<Popover
open={this.state.open}
anchorEl={this.state.anchorEl}
anchorOrigin={{horizontal: 'right', vertical: 'top'}}
targetOrigin={{horizontal: 'left', vertical: 'top'}}
onRequestClose={this.handleLeave}
muiTheme={darkBaseTheme}
/>Run Code Online (Sandbox Code Playgroud)
Roc*_*ces 11
从技术上讲,这不是错误,因为onMouseEnter事件被正确触发,这会导致Popover组件在页面上呈现背景,从而触发onMouseLeave事件。
这个“问题”在[Popover] 事件处理程序问题(mouseEnter 和 mouseLeave)#7680 中讨论。
幸得konradwww,上市下面的解释,导致行为的任何理智的人会期望:
<Popover
style={{ pointerEvents: 'none'}}
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |