我想在escape次按下时绑定关闭活动的react bootstrap 弹出框.这是密码

_handleEscKey:function(event){
         console.log(event);
        if(event.keyCode == 27){
          this.state.activePopover.hide();
        }
   },

  componentWillMount:function(){
     BannerDataStore.addChangeListener(this._onchange);
     document.addEventListener("click", this._handleDocumentClick, false);
     document.addEventListener("keyPress", this._handleEscKey, false);
   },


   componentWillUnmount: function() {
     BannerDataStore.removeChangeListener(this._onchange);
      document.removeEventListener("click", this._handleDocumentClick, false);
      document.removeEventListener("keyPress", this._handleEscKey, false);
   },

但当我按下任何键时,控制台中没有记录任何内容.我也试着在windows 上听,用不同的箱子听."按键、按键等等,但我好像做错了什么.

推荐答案

你应该用keydown而不是keypress.

Keypress(已弃用)通常仅用于根据文档生成字符输出的键

Keypress (deprecated)

按下某个键时会触发keypress事件,该键通常会生成一个字符值

Keydown

按键时会触发keydown事件.

Reactjs相关问答推荐

更新数据时有关CQR和更新UI的问题

呈现组件元素(MAP)中的问题

我想删除NextJs中的X轴标签APEXCHARTS

UseEffect和useSelector的奇怪问题导致无限循环

react 路由GUGUD Use Effect无法通过useNavigate正常工作

在url中使用MongoDB对象ID被认为是不好的做法?

Reaction路由DOM v6不包含上下文(Supabase)

为什么我得不到我想要的数据?

使用Next.js和Next-intl重写区域设置

悬停轴时重新绘制自定义参照线

错误:操作必须是普通对象.使用自定义中间件进行异步操作. Redux/工具包

无法在 NextJS 中获取嵌套对象

在MongoDB中,如何获取最后N条记录中字段不为空或不为空字符串的数据

ReactJS:在导航栏中使用 Select inside Link 组件时如何避免重定向?

antd 找不到 comments

单击按钮或文本从一个组件移动到另一个组件

react 测试显示错误的结果

如何使用 UseState 正确测试组件

如何在 React 中单击鼠标的位置动态添加 div?

如何在 React x 中返回组件?