lodash.debounce 在 React js 中搜索

lodash.debounce search in react js

我正在尝试使用 lodash 对搜索进行去抖动,去抖动。

但是每当 运行 我收到类型错误

TypeError: Cannot read property 'debounce' of undefined

我试过在代码中移动它,但不明白为什么它不起作用

我从导入它开始

import { _, debounce } from 'lodash'

我有如下输入

<input
    type="text"
    value={this.state.query}
    onChange={(e) => {this.updateQuery(e.target.value)}}
    placeholder="Search by title or author"
/>

连接到这个函数

updateQuery = (query) => {
    _.debounce(() => query(this.setState({ query }), 500))
    this.onBookSearch(query)
}

有人知道这是为什么吗?

我认为您的导入有问题。您可能希望将 _ 作为默认值导入:

import _, {debounce} from 'lodash';

此外,您没有使用提取的函数:

updateQuery = (query) => {
  debounce(() => query(this.setState({ query }), 500))
  this.onBookSearch(query)
}

由于您是在导入中提取 {debounce},因此您可以直接使用它。