react 點(diǎn)擊其他區(qū)域關(guān)閉彈出框

首先,頁面是這樣?jì)鸬模?/p>

image.png

點(diǎn)擊上面的分享按鈕后:

image.png

我想要的效果是:點(diǎn)擊分享框外的任何地方,彈出框消失,恢復(fù)原樣。

首先想到的方法是:

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

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

這樣的結(jié)果是:
點(diǎn)擊任何地方兩者都消失,包括點(diǎn)擊分享按鈕(微信和朋友圈ICON)

所以經(jīng)過網(wǎng)上資料的啟發(fā),又換了個(gè)思路:
點(diǎn)擊蒙板,分享框消失。

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


如此這般,甚好。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容