React lodash debounce总是返回null

时间:2017-10-28 04:28:40

标签: javascript reactjs lodash

我想在类属性中使用lodash但它总是返回null为值。我遵循了Perform debounce in React.js(第二个答案和第3号解决方案)

我的代码:

// func
handleSearchInput = debounce(e => {
    console.log(e);
    e.persist();

    console.log(e.target);
}, 500);

// Render
<Input
    type="text"
    onKeyDown={this.handleSearchInput}
    placeholder="Search..."
/>

我的所有console.log()总是将我返回null。我想得到我的输入值。

任何解决方案?

3 个答案:

答案 0 :(得分:1)

在调用persist

之前,必须debounce(或取消合成事件重新使用)
onKeyDown={e => {
  e.persist();
  this.handleSearchInput(e);
}}

答案 1 :(得分:0)

您打算使用lodash函数。您需要先导入或要求lodash并使用如下函数:

_.debounce(...)

您引用的示例使用名为debounce的自定义函数。

答案 2 :(得分:0)

您可以使用以下方法来持续合成事件:

onClick(event) {
  event.persist();

   setTimeout(() => {
     consoloe.log(event);
   }, 1000);
}

或者您可以复制事件对象:

onClick(event) {
 const eventClone = { ...event };

 setTimeout(() => {
     consoloe.log(eventClone);
 }, 1000);
}