【发布时间】:2016-05-20 20:48:18
【问题描述】:
我基本上想在用户将鼠标悬停在该组件上时触发组件状态的更改。
由于 onMouseEnter 和 onMouseLeave 在某些条件下无法正常工作 (https://github.com/facebook/react/issues/6807),是否有替代方案?
编辑: 我认为这与重新渲染有关。当组件属于同一类型但我强制重新渲染时,它会导致相同的问题。
class onHover extends Component {
constructor(props) {
super(props);
this.state = {
bool: false,
}
}
render() {
return (
<div onMouseEnter={() => this.setState({ bool: true })} onMouseLeave={() => this.setState({ bool: false })}>
{
this.state.bool ? (
<div key={Math.random()}>[OPTION1] show after onMouseEnter</div>
) : (
<div key={Math.random()}>[OPTION2] show after onMouseLeave</div>
)
}
</div>
)
}
}
【问题讨论】:
-
对我来说,当我从右侧或左侧悬停在/外部时,它工作正常。从顶部/底部看它坏了。
-
仅当节点不遵循正常的 dom 结构 e.G 位置:固定顶部:0 左侧:0
标签: reactjs