****关键思路****
监听与移除事件+contains+ref
另外注意点:
removeEventListener跟addEventListener相对应,用于移除事件监听。
如果要进行移除事件,addEventListener() 的执行函数必须使用外部具名函数,匿名函数事件是无法移除的。
window.addEventListener('click',this.removeListen,false);
window.removeEventListener('click', this.removeListen,false);
removeListen=(e)=>{
//不包含在内的 this.state.show根据自己项目是否需要
if(!this.StComponent.contains(e.target)&&this.state.show){
this.setState({
show:false
})
}
}