2017-06-11 23 views
0

我正在使用reactjs。在我的组件的一个类中,我有一个函数,我想绑定'this'对象,并且还可以使用的参数。它是:将参数绑定到传递给lodash的“debounce”的输入函数

const boundSingleClick = this.onSingleClick.bind(this, myArgument) 

onSingleClick签名和定义:

onSingleClick(itemId) { 
     this.clickedOnce = undefined 
     this.props.previewItem(itemId) 
    } 

现在,我想在lodash的防抖使用此功能。我使用这种方式:

const delayedClick = _.debounce(boundSingleClick, 300) 
    delayedClick() 

我注意到在调用去抖功能时,其是,在“myArgument”参数的函数调用“未定义” - 尽管,“这个”正确绑定。

debounce是否接受具有绑定参数的函数作为参数?

任何帮助真的很感激。

谢谢。

+0

你能证明你的onSingleClick函数的签名 –

+0

你可以查阅一下是myArgument上onSingleClick当调用bind的价值?它是预期值还是未定义? –

+0

我的意思是说,当你绑定函数时,myArgument的值是什么,而不是__debounce –

回答

0

为了保持OP上的评论数字很低,我发布这个答案,但这更像是一个quickfix /解决方法,也许别人可以指出我们真正的问题,因为我无法重现错误在我身边。

尝试调用boundSingleClick为:

const delayed = _.debounce((...args) => boundSingleClick.apply(null, args), 300) 
+0

对不起,回来这么晚。我的代码有一个错误,因为我遇到了问题。 Debounce可以很好地处理绑定参数。感谢您的帮助,它有助于纠正我的代码。 – bkj