在 React 的 keyDown 上 e.preventDefault() 之后不能使用任何键

Can't use any key after e.preventDefault() on keyDown in React

我需要阻止用户在输入中输入超过 4 位数字。 调用 e.preventDefault()onKeyPress 一起工作正常,但我不想使用它,因为它已被弃用。 使用 onKeyDown 有效,但在调用 e.preventDefault() 后,用户无法删除文本,该输入现在已“冻结”。我知道这是设计使然。有没有更好的方法来阻止用户键入超过 4 位数字但仍然允许删除文本?

您是否尝试过将 maxLength="4" 属性添加到您的输入中?

https://www.w3schools.com/tags/att_input_maxlength.asp