在一个小的编辑表单中,我用文本值预填充了Input元素。然后,我使用每个元素的onChange
事件监视更改。
我的QA同事刚刚发现的一个奇怪现象是,如果您最初选择了所有文本(即Cmd-A或Ctrl-A),然后按Backspace或Delete,则不会触发onChange
事件。
这似乎是浏览器或React中的错误/缺陷吗?
我将通过为每个Input元素添加一个onKeyUp
事件处理程序,以寻找Backspace(ASCII 8)或Delete(ASCII 46)代码的方式来解决这个问题。
更新:
看来根本原因是我对defaultValue
属性的使用,如本例所示:
<Form.Control as='input'
defaultValue={location}
placeholder='Enter Location'
onChange={e => handleChange(e)}
/>
使用此代码,如果遵循上述步骤,onChange
事件将不会触发。但是,如果将defaultValue
更改为value
,则一切正常。
答案 0 :(得分:0)
我更新了提出问题的问题。
我将不再使用Input元素的defaultValue
!