react 点击其他区域关闭弹出框

首先,页面是这样婶的:

image.png

点击上面的分享按钮后:

image.png

我想要的效果是:点击分享框外的任何地方,弹出框消失,恢复原样。

首先想到的方法是:

componentDidMount(){
    document.onclick = this.onblur
  }

onblur =() => {
    this.setState({
      showMask:false, //蒙板消失
      showPop:false //分享框消失
    })
  }

这样的结果是:
点击任何地方两者都消失,包括点击分享按钮(微信和朋友圈ICON)

所以经过网上资料的启发,又换了个思路:
点击蒙板,分享框消失。

closePop =() => {
    this.setState({
      showMask:false,
      showPop:false
    })
  }
render(){
  return(
    <div>
      ...
      <div style={styles.maskLayer} onClick={this.closePop}></div>
      ...
    </div>
  )
}


如此这般,甚好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,986评论 25 709
  • 使用sketch最重要的一点是设计好控件的规范。 为做好设计规范需要对色彩进行编号,比如:color_a”_1,c...
    youyeath阅读 26,525评论 2 237
  • 来个大整容 app在横屏状态下是不显示iPhone的状态栏的(就是有个小电池的那一栏),除非你强制app这样做。这...
    Billionfan阅读 9,598评论 8 9
  • 继昨天成功完成了一锅不错的浓汤之后,计划今天继续调整汤底的味道,一早还是一样跑到了农贸市场,采购新的香料以及调味料...
    也牛牛肉阅读 1,868评论 0 1
  • 下午非常感谢同学的帮忙,让我们组两天之内就完成了1分49秒的舞蹈。 晚餐有鸡蛋,为什么鸡蛋怎么好吃东西,不是素的呢...
    逆风追梦人阅读 1,324评论 0 0

友情链接更多精彩内容