无法将KeyDown事件调度到React Component

时间:2019-05-09 19:00:59

标签: javascript reactjs events

我想从body元素中也是div内部的div调度onKeyDown事件。

我正在使用React,并尝试在我的React组件的componentDidMount函数的body标签中添加onKeyDown事件侦听器。

componentDidMount() {
    document.getElementById("main-content").onkeydown = event => {
        document.getElementById("Keyboard").dispatchEvent(event);
    }
}

我希望将keydown事件调度到Keyboard组件,但是我收到下面列出的错误。

InvalidStateError:试图使用一个不可用或不再可用的对象。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您不能将其硬编码到div元素上吗?
如果可以,请使用this question作为参考。

如果您无法进行编码,请尝试以下操作:

    document.querySelector('#yourDiv').addEventListener('keydown', function (event) {
      console.log(event.key) //Change this to whatever you want it to do
    })

然后在HTML中为div提供tabindex="0"属性。

tabindex属性:

  

tabindex =“ 0”允许将非表单/链接/对象元素以默认导航顺序放置,从而使任何元素都可聚焦并触发交互。

更多信息here