我想在下拉组件外单击时关闭下拉菜单.

我该怎么做?

推荐答案

在元素中,我添加了mousedownmouseup,如下所示:

onMouseDown={this.props.onMouseDown} onMouseUp={this.props.onMouseUp}

然后在家长中,我会这样做:

componentDidMount: function () {
    window.addEventListener('mousedown', this.pageClick, false);
},

pageClick: function (e) {
  if (this.mouseIsDownOnCalendar) {
      return;
  }

  this.setState({
      showCal: false
  });
},

mouseDownHandler: function () {
    this.mouseIsDownOnCalendar = true;
},

mouseUpHandler: function () {
    this.mouseIsDownOnCalendar = false;
}

showCal是一个布尔值,在我的例子中,true显示日历,false隐藏日历.

Reactjs相关问答推荐

如何创建react router v6的自定义子路由?

在动态React组件中删除事件侦听器

在Reaction中的第一次装载时,Use Effect返回空数组

在迭代状态时无法读取未定义的属性(读取 map )

ReactJS 共享上下文

是的验证:使用 useFieldArray 访问表单值

useMemo 依赖项的行为

在 monorepo 内的工作区或库之间共享 redux 状态

如何在Next.js应用程序中为路由[slug]生成.html文件?

当我使用 Firebase Auth 在 React 中刷新主页时显示登录页面

条件渲染元素的测试不起作用

作为单个变量的 React 组件是否比 memoized 组件渲染得更快?

我如何在所有组件中使用 Chakra UI toast?

ReactJs 行和列

在嵌套的 Stack Navigator 中的 BottomTabBar 中导航会导致比以前更多的渲染

如何在自定义 JSX 元素上声明属性?

从输入中获取数字时,react 计数器不会增加

react 路由路由加载器不适用于嵌套组件

仅在重新渲染后设置状态

如何防止 mui x-date-picker 被截断?