【发布时间】:2018-06-03 02:17:20
【问题描述】:
我正在尝试使用 Lodash 节流函数来节流文本输入上的 onChangeText 事件。不过好像没什么区别:
<TextInput {...this.c('tokenInput')}
onChangeText={ _.throttle((text) => {
this.onChangeText(text)
}, 1000) }
value={this.state.text}
placeholder='Select...'
/>
我怎样才能做到这一点?每次我在输入中输入内容时,它都会在每次更改时继续执行 onChangeText()。
【问题讨论】:
-
那是因为您将 onChangeText 设置为等于函数返回值,而不是函数。这意味着每次重新渲染时,它都会执行节流功能。应该像
onChangeText={ (text) => {/*do throttle stuff here*/} } -
@Jayce444 我把它改成了
onChangeText={(text) => { _.throttle((text) => { this.onChangeText(text) }, 1000) }}。现在根本不执行 onChangeText 方法。你能举个例子说明实现应该是什么样子吗? -
@Jayce444
_.throttle返回一个函数 -
你在代码的任何地方都做了onChangeText函数绑定吗?
-
@Dez 不,没有约束力
标签: javascript reactjs underscore.js lodash