【发布时间】:2016-05-27 21:08:05
【问题描述】:
我有一个需要去抖动的字段的onchange 事件,我为此使用下划线,但是当我使用去抖动器时,传递给 React 处理程序的事件似乎已过期。
<div className='input-field'>
<input onChange={_.debounce(this.uriChangeHandler.bind(this), 500)} id='source_uri' type='text' name='source_uri' autofocus required />
<label htmlFor='source_uri'>Website Link</label>
</div>
uriChangeHandler(event) {
event.preventDefault();
let uriField = $(event.target);
let uri = uriField.val();
this.setState({
itemCreateError: null,
loading: true
});
this.loadUriMetaData(uri, uriField);
}
我收到此错误:
警告:出于性能原因,此合成事件会被重复使用。如果您看到这一点,则表示您正在对已发布/无效的合成事件调用 preventDefault。这是一个无操作。有关详细信息,请参阅 https://fb.me/react-event-pooling。
使用onchange 而不使用去抖器可以正常工作。
【问题讨论】:
-
不,我用
this.debouncedUriChangeHandler = _.debounce(this.uriChangeHandler, 500);尝试过,但得到了同样的错误
标签: javascript reactjs underscore.js dom-events debouncing