在下面的示例中,onChange
每次用户输入字母时都会触发事件(例如onkeydown
事件)这是正常行为吗?
import React from 'react';
export default class Form extends React.Component {
state = { name: '' };
_handleNameChanges = ({ target }) => {
this.setState({ name: target.value });
};
render() {
return (
<form>
<input
type="text"
name="name"
placeholder="John Doe"
onChange={this._handleNameChanges}
required
/>
</form>
);
}
}
是的,这是正常行为,发生的情况是,一旦按下键盘按键,onKeyDown
在将字符输入表单字段之前触发。onChange
仅当以下组合时才会被解雇onkeydown
and onkeyup
发生。通过停止其中任何一个的传播,您将无法开火onChange
<input
onKeyDown={e => {e.stopPropagation(); e.preventDefault()}}
onChange={e => console('never fires')}
/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)