は16反応する反応でjsfiddleで動作動作していないが、このjsfiddleは正常に動作します:https://jsfiddle.net/kp04015o/9/シンプルなデバウンスは16を反応させるが、これはで動作しない14.3
できる任意の1つのデバッグこのエラーなぜ? handleChange = debounce(e => this.setState({searchTerm:e.target.value}))でnullのプロパティ 'value'を読み取ることができません。
import React from 'react';
import ReactDOM from 'react-dom';
const debounce = (cb, wait) => {
let timeout;
return function() {
let callback =() => cb.apply(this, arguments);
clearTimeout(timeout);
timeout = setTimeout(callback, wait);
}
}
class Debounce extends React.Component {
state = {
searchTerm: '',
};
handleChange = debounce(e => this.setState({searchTerm: e.target.value}), 1000);
render() {
return (
<div>
<input type="text" onChange={this.handleChange}/>
<div>Search Value 2: {this.state.searchTerm}</div>
</div>
);
}
}
ReactDOM.render(<Debounce />, document.getElementById('root'));
ありがとうございました。イベントプーリングのリンクも役立ちました。また、足跡の理由でモジュールではなく、私が述べたような単純なデバウンス機能を使う方が良いと思いますか?私はutilフォルダにデバウンス機能を残しておき、任意のライブラリの代わりにそれをインポートしています。 – state0fmind