Javascript 单击react时触发按键事件?

Javascript 单击react时触发按键事件?,javascript,reactjs,Javascript,Reactjs,在我的组件中,我想在一个特定的键码上发射一个假的onKeypress,这可能吗?我有以下代码: class componentName extends Component { fireKey = e => { function makeKeyPressEvent(keyName, keyCode, charCode){ var event = new KeyboardEvent('keypress'); Object.defineProperties(ev

在我的组件中,我想在一个特定的键码上发射一个假的onKeypress,这可能吗?我有以下代码:

class componentName extends Component {
 fireKey = e => {
    function makeKeyPressEvent(keyName, keyCode, charCode){
      var event = new KeyboardEvent('keypress');
      Object.defineProperties(event, {
          charCode: {value: charCode},
          keyCode: {value: keyCode},
          keyIdentifier: {value: keyName},
          which: {value: keyCode}
      });
      return event;
    }
    window.addEventListener('keypress', function(event){
      console.log('key pressed!',
        event.keyIdentifier, event.keyCode, event.charCode, event)
    }, true);
    var enterKeyEvent = makeKeyPressEvent('onClick', 39, 39);
    window.dispatchEvent(enterKeyEvent);
  }
  render (

        ) {
    return (
      <div>
        <button onClick={this.fireKey}> > </button>
      </div>
    )
  }
}
class componentName扩展组件{
fireKey=e=>{
函数makeKeyPressEvent(keyName、keyCode、charCode){
var事件=新键盘事件(“按键”);
对象。定义属性(事件{
charCode:{value:charCode},
keyCode:{value:keyCode},
键标识符:{value:keyName},
其中:{value:keyCode}
});
返回事件;
}
window.addEventListener('keypress',函数(事件){
console.log('按键!',
event.keyIdentifier、event.keyCode、event.charCode、event)
},对);
var enterKeyEvent=makeKeyPressEvent('onClick',39,39);
window.dispatchEvent(enterKeyEvent);
}
渲染(
) {
返回(
> 
)
}
}
或者如何在单击react中的按钮时手动更改事件键代码?

您可以使用以下方法:-
you can use this:-
    class componentName extends Component {
     fireKey = e => {
        if(e.keyCode == 13){        //compare with your keyboard key
                //your code here
             }
      }
      render () {
        return (
          <div>
            <button onKeyPress={this.fireKey}> > </button>
          </div>
        )
      }
    }
类componentName扩展了组件{ fireKey=e=>{ 如果(e.keyCode==13){//请与键盘键进行比较 //你的代码在这里 } } 渲染(){ 返回( > ) } }
您可以使用:-
类componentName扩展了组件{
fireKey=e=>{
如果(e.keyCode==13){//请与键盘键进行比较
//你的代码在这里
}
}
渲染(){
返回(
> 
)
}
}

您希望模拟关键事件的原因是什么?我使用它作为软件包功能,在右箭头上更改页面,在按钮上也需要它。Sowell,我没有任何模拟关键事件的解决方案(抱歉),但我可能会建议您一种避免方法(很可能,这会使您的代码更干净一点),执行所有逻辑的操作,放在函数内部,关键事件外部,然后在关键事件内部调用执行逻辑的函数,然后单击按钮?同样,您不必重复逻辑,也不必模拟关键事件。这有帮助吗?我看不出有必要通过按键事件来更改页面。你能更透彻地解释一下你的用例吗?你想模拟关键事件的原因是什么?我正在使用它作为一个包功能,在右箭头上更改页面,在按钮上也需要它。我没有任何模拟关键事件的解决方案(对不起),但我可能会建议你一种避免它的方法(好吧,而且很可能这会让你的代码更干净一点),做所有逻辑的动作,放在函数内部,在按键事件外部,然后在按键事件内部调用做逻辑的函数,然后点击按钮?同样,所以你不必重复逻辑,也不必模拟按键事件。这有帮助吗?我看不出按键事件需要改变一页。你能更详细地解释一下你的用例吗?