rn通过lodash实现事件防抖


_.debounce()

1
_.debounce(func, [wait=0], [options={}])

参数

1
2
3
4
5
6
func: (Function)要防抖动的函数。
[wait=0]: (number)需要延迟的毫秒数。
[options={}]: (Object)选项对象。
[options.leading=false]: (boolean)指定在延迟开始前调用。
[options.maxWait]: (number)设置 func 允许被延迟的最大值。
[options.trailing=true]: (boolean)指定在延迟结束后调用。

返回值

1
return: (Function)返回新的 debounced(防抖动)函数。

应用

TextInput 实现停止输入文字 600ms 后自动调用自定方法 onRefresh 获取数据

1
2
3
4
5
6
7
8
<TextInput onChange={this.changeSearchText} />
changeSearchText = lodash.debounce(
() => {
this.onRefresh(); // 异步获取数据列表方法
},
600,
{trailing: true},
);