使用Lodash _.throttle()和ReactJS

时间:2017-12-20 13:42:09

标签: javascript reactjs underscore.js lodash

我试图使用Lodash节流功能来限制文本输入上的onChangeText事件。但它似乎没有任何区别:

<TextInput {...this.c('tokenInput')}
    onChangeText={ _.throttle((text) => {
        this.onChangeText(text)
    }, 1000) }
    value={this.state.text}
    placeholder='Select...'
/>

我该如何使这项工作?每当我在输入中输入内容时,它会在每次更改时继续执行onChangeText()。

1 个答案:

答案 0 :(得分:-1)

onChange必须是一个函数,但在你的上下文中它是一个函数调用。所以要解决这个问题,你必须做这样的事情:

<TextInput {...this.c('tokenInput')}
    onChangeText={ text => _.throttle(x => {
        this.onChangeText(x)
    }, 1000)(text) }
    value={this.state.text}
    placeholder='Select...'
/>