取消搜索输入onChangeText()

时间:2018-09-25 18:37:05

标签: react-native lodash debouncing

使用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
                */
            }}
        />
    )
}

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

1 个答案:

答案 0 :(得分:2)

现在,您将在处理程序的每次调用上创建debounce的新实例。

理想情况下,您应该将整个处理程序包装在debounce中,因为反抖动创建了一个debounced函数,该函数会延迟调用func

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