react 实现点其他地方一个弹框关闭

当我们点击更多时候,页面出现一个弹层,点击叉叉,再次点击更多或者点击其中某个城市,这个弹层都会消失,但是现在我们希望点击页面其他任意区域弹层也会消失,为此,我们使用react实现它。

首先我们在react的生命周期函数中增加监听器,给整个页面最顶级(window)增加一个点击事件处理函数

componentDidMount() {
    window.addEventListener('mouseup', this.handleMouseUp, false)
  }

  componentWillUnmount() {
    window.removeEventListener('mouseup', this.handleMouseUp, false)
}

然后,编写事件处理函数,点击发生,改变控制弹层显示和消失的变量

handleMouseUp = () => {
    let { UPDATE_STATE } = this.store.actions
    //点击页面空白区域,更多弹层消失
    document.onmouseup = () => {
        UPDATE_STATE({
            Pinitarrowstate: true,
            Sinitarrowstate: true,
        })
    }
}

总结:在这里需要记住,react需要自动触发的函数(定时器,自动监听页面等等)可以放在生命周期函数中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值