检测鼠标在 React 组件中的点击位置

Detecting where mouse was clicked in React component

在我的 React 应用程序中,我有一个侧导航栏,可以通过单击一个图标来打开和关闭。

如果导航栏打开并且用户点击导航栏外的任何地方,我仍然想关闭它。我怎么知道点击是否在导航栏之外?我面临的主要挑战是确保点击不在导航栏的子节点上。所以,像这样只检查导航是不够的:

mouseDownHandler(e) {

   var container = e.target;
   if(container !== "nav-bar") {

      // Do something...
   }
};

我还需要确保点击区域不是 nav-bar 的子区域。

您需要向文档元素添加一个事件侦听器(例如在导航栏组件的 componentDidMount 中)并在您的导航栏被销毁时将其删除(例如在 componentWillUnmount).

然后您需要引入一个 ref 来获取导航栏元素的句柄。

所有的事件处理部分都在这里回答: