react 类组件写一个input的防抖
时间: 2023-12-26 12:06:26 浏览: 76
react-debounce-input:React组件以去抖动的onChange呈现Input
好的,可以使用 `lodash` 库提供的 `debounce` 方法来实现输入框的防抖效果,代码如下:
```jsx
import React, { Component } from 'react';
import debounce from 'lodash/debounce';
class InputWithDebounce extends Component {
constructor(props) {
super(props);
this.state = {
value: '',
};
this.handleInput = this.handleInput.bind(this);
this.debouncedHandleInput = debounce(this.props.handleInput, 500);
}
handleInput(event) {
this.setState({ value: event.target.value });
this.debouncedHandleInput(event.target.value);
}
render() {
return (
<input type="text" value={this.state.value} onChange={this.handleInput} />
);
}
}
export default InputWithDebounce;
```
在构造函数中,我们使用 `lodash` 的 `debounce` 方法来创建一个具有 500ms 延迟时间的防抖函数 `debouncedHandleInput`,并将其作为 props 传递给输入框组件。每当用户输入时,我们将输入框的值存储在组件的 state 中,并调用 `debouncedHandleInput` 方法,该方法会在用户停止输入 500ms 后才真正地执行输入框的处理函数 `handleInput`,从而实现了输入框的防抖效果。
阅读全文