react实现div隐藏_react 点击空白处隐藏弹出层

这篇博客介绍了在React中实现点击空白区域隐藏弹出层的方法,通过在document上绑定点击事件,并在不需要隐藏的元素上阻止冒泡。文章详细讲解了组件的实现过程,包括事件处理和阻止事件冒泡的技巧。
摘要由CSDN通过智能技术生成

点击空白处隐藏弹出层的原理是:在 document 上绑定事件来隐藏弹出层,这样点击任何元素的时候都会冒泡到 document 上,都会执行隐藏弹出层的功能。然后我们在不需要隐藏弹出层的元素上阻止冒泡即可。

class Select extends Component {

constructor(props) {

super(props);

this.state = {

selected: props.list[0],

showList: false

};

this.showList = this.showList.bind(this);

}

componentDidMount() {

// 在 document 上绑定点击事件,隐藏弹出层

document.addEventListener('click', (e) => {

this.setState({

showList: false

});

});

}

showList(e) {

// 使用 react 的 e.stopPropagation 不能阻止冒泡,需要使用 e.nativeEvent.stopImmediatePropagation,这里我们对其进行封装,方便多次调用

this.stopPropagation(e);

this.setState({

showList: !this.state.showList

});

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值