if 语句仅在第二个键按下时运行

if statement only runs on second key down

试图找出为什么此处的 if 语句在用户第二次按下某个键时仅 运行s。我试图从第一个按键开始将其设置为 运行。

函数:

const commentFieldHasText = () => {
    const commentInput = document.querySelector('.add-comment')
    console.log('runs first keypress')

    if (commentInput.value) {
      console.log('only runs second keypress')
    }
  }

输入:

 <input 
   className="add-comment"
   placeholder="Add a public comment" 
   onKeyDown={() => commentFieldHasText()}
 />

附加信息: onKeyPress 也没有提供预期的功能。 onKeyUp 确实如此。

发生这种情况是因为 keydownkeypress 事件发生在之前 键入实际密钥。

要解决此问题,请尝试使用 inputkeyup 事件。