我试图在我设法做的那个动作上使用去抖动但是我想通过e传递作为参数,但它不起作用。我有什么方法可以做到这一点吗?
constructor(props, context) {
super(props, context);
this.testing = _.debounce(this.testing.bind(this), 2000);
}
@action testing(e) {
alert("debounced!!");
//use e.target ...
}
如果我带走e,它将进入该功能,否则不会。我该怎么做才能解决这个问题?
答案 0 :(得分:3)
您可以使用 event.persist() 将事件传递给去抖动方法。
根据DOCS:
如果您想以
asynchronous
方式访问事件属性,那么 应该在事件上调用event.persist()
,这将删除 来自池的合成事件,并允许对事件的引用 由用户代码保留。
因此您可以将该事件用作
constructor(props, context) {
super(props, context);
this.testing = _.debounce(this.testing.bind(this), 2000);
}
@action testing(e) {
alert("debounced!!");
//use e.target ...
}
onChange = (e) => {
e.persist();
this.testing(e);
}
答案 1 :(得分:0)
分配for(auto& s : string_array)
buffer_temp.insert(buffer_temp.end(), s.begin(), s.end() + 1);
后,
this.testing = _.debounce(this.testing.bind(this),2000);
在某些情况下,您应该使用参数
调用该方法this.testing
类似这样的事情