去抖搜索输入 onChangeText()

Debouncing search input onChangeText()

使用 lodash 的 debounce(),我试图等待 1.2 秒,然后在我的应用状态中设置搜索词。但是我用的时候好像没有运行我的功能:

onChangeText(text) {
    console.log('setting');
    setSearching(true);
    setSearchTerm(text);
}
render(){
    return(
        <TextInput style={s.input}
            onChangeText={() => {
                _.debounce(this.onChangeText, 1200);
                /*
                doing just...
                this.onChangeText(text)
                ...works
                */
            }}
        />
    )
}

使用 debounce 时,我的控制台日志中没有显示 setting。有什么想法吗?

现在您正在为处理程序的每次调用创建一个 debounce 的新实例。

理想情况下,您应该将整个处理程序包装在 debounce 中,因为 debounce 创建了一个延迟调用 func[=15 的 debounced 函数=]

onChangeText={_.debounce(this.onChangeText, 1200)}