好吧,用lodash很容易
_.debounce。
您用它包装方法并传递要等待的毫秒数。
至于输入的最小长度,仅当长度大于2时才调用new方法。
这是一个小的运行示例:
class App extends React.Component { constructor(props) { super(props); this.state = { message: '', inputValue: '' }; this.updateMessage = _.debounce(this.updateMessage, 2000); } onChange = ({ target: { value } }) => { this.setState({ inputValue: value }); if (value.length > 2) { this.updateMessage(value); } } updateMessage = message => this.setState({ message }); render() { const { message, inputValue } = this.state; return ( <div> <input placeholder="type something..." value={inputValue} onChange={this.onChange} /> <hr/> <div>server call >> wait 2 seconds & min length of 2</div> <p>{message}</p> </div> ); }}ReactDOM.render(<App />, document.getElementById('root'));<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script><script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.compat.js"></script><div id="root"></div>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)