Javascript 在React中多次按键

Javascript 在React中多次按键,javascript,reactjs,user-interface,keyboard,Javascript,Reactjs,User Interface,Keyboard,当同时按下两个键时,我无法更新按下的键。我有下面的代码,当只按下一个键时,它可以完美地工作 const keysPressed = {'w':false, 'a':false, 's':false, 'd':false}; document.addEventListener('keydown', (event) => { keysPressed[event.key] = true; }); document.addEventListener('keyup',

当同时按下两个键时,我无法更新按下的键。我有下面的代码,当只按下一个键时,它可以完美地工作

  const keysPressed = {'w':false, 'a':false, 's':false, 'd':false};

  document.addEventListener('keydown', (event) => {
      keysPressed[event.key] = true;
  });

  document.addEventListener('keyup', (event) => {
      keysPressed[event.key] = false;
  });

  const handleKeyPress = (event) => {
    console.log(JSON.stringify(keysPressed))
  }

它将正常工作,举个例子,您按下shift+A键,然后发生前两个
向下键
事件,然后发生两个
向上键
事件。它工作得很好,对吧,你希望它是什么其他行为?如果我按住“a”和“b”,那么控制台将记录“a”或“b”为真,但不是两者都是真的。我理解了,我检查了,然后只添加了一个key-up事件侦听器,如果你按住“a”或“b”,它将不会是console.log(),但是,当你同时释放它们时,它将是console.log().我认为没有键,即使它同时监听两个键事件,最好只使用keyup。甚至按键和向下键在这里也会失败。