我已经建立了一个文本字段,它使用 react 将提供的输入转换为大写字母,它接受 5 个字符的 maxLength。
问题:
当我尝试执行撤消和重做操作时,文本字段允许的字符数超过 maxLength HTML 属性中指定的字符数。
重现步骤:
- 转到链接:https://codesandbox.io/s/textfield-uppercase-material-ui-forked-95ww4t?file=/src/App.js
- 它有一个文本输入,可以将给定的文本转换为大写,并且还允许最多 5 个字符
- 键入“abcdef”。由于最大长度限制,您可以在文本字段中看到“ABCDE”
- 按“ctrl+z”5次
- 按“ctrl+y”重做
- 现在您可以在文本框“ABCDEAA”中看到 7 个字符,根据 maxLength 规范,这是不允许的。
我在 chrome 和 edge 浏览器(基于 Chromium 的浏览器)中遇到了这个问题,但在 firefox 中没有。我在这里做错了什么还是需要由 Chrome 或 React 修复的问题。