【问题标题】:How to call debounce method within one function?如何在一个函数中调用 debounce 方法?
【发布时间】:2019-12-17 16:34:59
【问题描述】:

我使用 React Hooks 和 lodash。用户单击按钮后,我需要清除一个状态,一秒钟后更新另一个状态。我设法创建了这个:

 const FirstAddTodo = type => {
    setEditor({ ...editor, todoTitle: '' });
    SecondAddTodo(type);
  };

  const SecondAddTodo = _.debounce(type => {
    dispatch({ type, value: editor.todoTitle });
  }, 1000);

它工作得很好,但是有没有可能将这两个功能合二为一?提前致谢!

【问题讨论】:

  • 为什么我的投票被否决了?我的问题有什么问题?

标签: javascript reactjs function lodash


【解决方案1】:

不确定,但也许这就是你想要的

 const FirstAddTodo = type => {
    setEditor({ ...editor, todoTitle: '' });

    _.debounce(type => {
      dispatch({ type, value: editor.todoTitle });
    }, 1000)(type);
  };

如果你有困惑,我可以解释。

_.debounce 将返回一个函数,当您执行 SecondAddTodo(type) 时,您正在调用重新调整的函数,因此如果您在 _.debounce 的末尾添加另一个 (),您正在调用返回的函数。

这是一个如何更好地理解它的示例

let a = function (){ console.log('nested function'); }
let b = function (){ return a }
let c = function (){ return b }
let d = function (){ return c }

console.log(d)
console.log(d())
console.log(d()())
console.log(d()()())
console.log(d()()()())

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2018-06-02
    • 2018-08-15
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多