React 点击空白处执行的函数
时间: 2023-08-16 20:06:36 浏览: 57
在 React 中,可以通过监听 document 上的 click 事件来实现点击空白处执行的函数。具体实现方式如下:
1. 首先,在组件的 componentDidMount 生命周期中,添加一个监听器,用于监听 document 上的 click 事件。
```javascript
componentDidMount() {
document.addEventListener('click', this.handleClickOutside);
}
```
2. 在组件的 componentWillUnmount 生命周期中,记得要移除监听器。
```javascript
componentWillUnmount() {
document.removeEventListener('click', this.handleClickOutside);
}
```
3. 实现 handleClickOutside 函数,该函数用于检测点击事件是否发生在组件内部,如果是,则不执行任何操作;如果不是,则执行你要执行的函数。
```javascript
handleClickOutside(event) {
const { target } = event;
const { current: wrap } = this.wrapRef;
if (wrap && !wrap.contains(target)) {
// 点击了组件外部
// 执行你要执行的函数
}
}
```
其中,wrapRef 是组件内的一个 ref,用来获取组件内的 DOM 元素,以便检测点击事件是否发生在组件内部。