我有一个名为 Dialog
的组件,其中我在鼠标点击 window
对象时附加了一个事件监听器 .
componentDidMount() {
document.addEventListener('click', this.handleClick);
}
componentWillUnmount() {
document.removeEventListener('click', this.handleClick);
}
如何检测(在 handleClick
函数中)是否在组件内部或外部触发了单击?请注意,此对话框包含不同的元素和子组件 .
1 回答
parent.contains(child)
是你的朋友 . 使用refs
的此解决方案可能并不完美,但仅使用this
在此处使用React 15不起作用,因此请记住,在早期版本中,您必须在父级上使用.getDOMNode()
.