javascript - 在 React 中单击组件外部时更改状态

标签 javascript reactjs components

我有一个下拉菜单,如下图所示: enter image description here

当我单击文件夹图标时,它会打开和关闭,因为 showingProjectSelector 属性处于设置为 false 的状态。

  constructor (props) {
    super(props)
    const { organization, owner, ownerAvatar } = props
    this.state = {
      owner,
      ownerAvatar,
      showingProjectSelector: false
    }
  }

当我单击该图标时,它会正确打开和关闭。

<i
  onClick={() => this.setState({ showingProjectSelector: !this.state.showingProjectSelector })}
  className='fa fa-folder-open'>
</i>

但是我想做的是当我点击下拉菜单外部时关闭下拉菜单。我怎样才能在不使用任何库的情况下做到这一点?

这是整个组件:https://jsbin.com/cunakejufa/edit?js,output

最佳答案

您可以尝试利用onBlur:

<i onClick={...} onBlur={() => this.setState({showingProjectSelector: false})}/>

关于javascript - 在 React 中单击组件外部时更改状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48674246/

相关文章:

javascript - 注册后收听事件是否安全?

javascript - 在 React 中刷新页面后如何使用 localStorage 来维护状态

reactjs - 为什么类型 SFC<AnchorProps> 不能分配给类型 SFC<{}>?

javascript - Vue.js 组件中的 V-for 不起作用

ruby-on-rails - Rails 友好的 DHTML 网格?

javascript - Angular2 防止在路由更改时破坏组件

javascript - 如何防止 "this"被事件处理程序反弹

Javascript 简写 if 语句

javascript - 从 AWS Lambda 触发 AWS EMR 流程步骤时超时

c# - 如何在没有身份验证和授权方法的情况下保护公共(public)端点